Skip to content

Commit 7e5dbe4

Browse files
committed
Add Reline.dialog_proc(name_sym)
1 parent c4bb1bf commit 7e5dbe4

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

lib/reline.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,12 @@ def add_dialog_proc(name_sym, p, context = nil)
161161
@dialog_proc_list << [name_sym, p, context]
162162
end
163163

164+
def dialog_proc(name_sym)
165+
dialog = @dialog_proc_list.find { |d| d[0] == name_sym }
166+
dialog.nil? ? nil : dialog[1]
167+
#@dialog_proc_list[name_sym]
168+
end
169+
164170
def input=(val)
165171
raise TypeError unless val.respond_to?(:getc) or val.nil?
166172
if val.respond_to?(:getc)
@@ -516,6 +522,7 @@ def self.insert_text(*args, &block)
516522
def_single_delegators :core, :last_incremental_search
517523
def_single_delegators :core, :last_incremental_search=
518524
def_single_delegators :core, :add_dialog_proc
525+
def_single_delegators :core, :dialog_proc
519526
def_single_delegators :core, :autocompletion, :autocompletion=
520527

521528
def_single_delegators :core, :readmultiline

test/reline/test_reline.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,16 +313,21 @@ def test_emacs_editing_mode
313313
def test_add_dialog_proc
314314
p = proc {}
315315
Reline.add_dialog_proc(:test_proc, p)
316+
assert_equal(p, Reline.dialog_proc(:test_proc))
316317

317318
l = lambda {}
318319
Reline.add_dialog_proc(:test_lambda, l)
320+
assert_equal(l, Reline.dialog_proc(:test_lambda))
321+
322+
assert_equal(nil, Reline.dialog_proc(:test_nothing))
319323

320324
assert_raise(ArgumentError) { Reline.add_dialog_proc(:error, 42) }
321325
assert_raise(ArgumentError) { Reline.add_dialog_proc(:error, 'hoge') }
322326
assert_raise(ArgumentError) { Reline.add_dialog_proc('error', proc {} ) }
323327

324328
dummy = DummyCallbackObject.new
325329
Reline.add_dialog_proc(:dummy, dummy)
330+
assert_equal(dummy, Reline.dialog_proc(:dummy))
326331
end
327332

328333
def test_readmultiline

0 commit comments

Comments
 (0)