зеркало из https://github.com/github/ruby.git
[ruby/irb] Restore IRB::InputCompletor for compatibility
(https://github.com/ruby/irb/pull/730) https://github.com/ruby/irb/commit/77265efc5f
This commit is contained in:
Родитель
96cd73d78f
Коммит
4e5c505bad
|
@ -415,4 +415,20 @@ module IRB
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
module InputCompletor
|
||||
class << self
|
||||
private def regexp_completor
|
||||
@regexp_completor ||= RegexpCompletor.new
|
||||
end
|
||||
|
||||
def retrieve_completion_data(input, bind: IRB.conf[:MAIN_CONTEXT].workspace.binding, doc_namespace: false)
|
||||
regexp_completor.retrieve_completion_data(input, bind: bind, doc_namespace: doc_namespace)
|
||||
end
|
||||
end
|
||||
CompletionProc = ->(target, preposing = nil, postposing = nil) {
|
||||
regexp_completor.completion_candidates(preposing, target, postposing, bind: IRB.conf[:MAIN_CONTEXT].workspace.binding)
|
||||
}
|
||||
end
|
||||
deprecate_constant :InputCompletor
|
||||
end
|
||||
|
|
|
@ -265,4 +265,29 @@ module TestIRB
|
|||
assert_include(doc_namespace("private_hoge", bind), "private_hoge")
|
||||
end
|
||||
end
|
||||
|
||||
class DeprecatedInputCompletorTest < TestCase
|
||||
def setup
|
||||
@verbose, $VERBOSE = $VERBOSE, nil
|
||||
IRB.init_config(nil)
|
||||
IRB.conf[:MAIN_CONTEXT] = IRB::Context.new(IRB::WorkSpace.new(binding))
|
||||
end
|
||||
|
||||
def teardown
|
||||
$VERBOSE = @verbose
|
||||
end
|
||||
|
||||
def test_completion_proc
|
||||
assert_include(IRB::InputCompletor::CompletionProc.call('1.ab'), '1.abs')
|
||||
assert_include(IRB::InputCompletor::CompletionProc.call('1.ab', '', ''), '1.abs')
|
||||
end
|
||||
|
||||
def test_retrieve_completion_data
|
||||
assert_include(IRB::InputCompletor.retrieve_completion_data('1.ab'), '1.abs')
|
||||
assert_equal(IRB::InputCompletor.retrieve_completion_data('1.abs', doc_namespace: true), 'Integer.abs')
|
||||
bind = eval('a = 1; binding')
|
||||
assert_include(IRB::InputCompletor.retrieve_completion_data('a.ab', bind: bind), 'a.abs')
|
||||
assert_equal(IRB::InputCompletor.retrieve_completion_data('a.abs', bind: bind, doc_namespace: true), 'Integer.abs')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче