Class: IRB::BaseCompletor
Overview
Constant Summary
collapse
- ReservedWords =
Set of reserved words used by Ruby, you should not use these for constants or variables
%w[
__ENCODING__ __LINE__ __FILE__
BEGIN END
alias and
begin break
case class
def defined? do
else elsif end ensure
false for
if in
module
next nil not
or
redo rescue retry return
self super
then true
undef unless until
when while
yield
]
- HELP_COMMAND_PREPOSING =
/\Ahelp\s+/
- GEM_PATHS =
if defined?(Gem::Specification)
Gem::Specification.latest_specs(true).map { |s|
s.require_paths.map { |p|
if File.absolute_path?(p)
p
else
File.join(s.full_gem_path, p)
end
}
}.flatten
else
[]
end.freeze
Instance Method Summary
collapse
Instance Method Details
#command_candidates(target) ⇒ Object
91
92
93
94
95
96
97
|
# File 'lib/irb/completion.rb', line 91
def command_candidates(target)
if !target.empty?
IRB::Command.command_names.select { _1.start_with?(target) }
else
[]
end
end
|
#completion_candidates(preposing, target, postposing, bind:) ⇒ Object
38
39
40
|
# File 'lib/irb/completion.rb', line 38
def completion_candidates(preposing, target, postposing, bind:)
raise NotImplementedError
end
|
#doc_namespace(preposing, matched, postposing, bind:) ⇒ Object
42
43
44
|
# File 'lib/irb/completion.rb', line 42
def doc_namespace(preposing, matched, postposing, bind:)
raise NotImplementedError
end
|
#retrieve_files_to_require_from_load_path ⇒ Object
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# File 'lib/irb/completion.rb', line 72
def retrieve_files_to_require_from_load_path
@files_from_load_path ||=
(
shortest = []
rest = retrieve_gem_and_system_load_path.each_with_object([]) { |path, result|
begin
names = Dir.glob("**/*.{rb,#{RbConfig::CONFIG['DLEXT']}}", base: path)
rescue Errno::ENOENT
nil
end
next if names.empty?
names.map! { |n| n.sub(/\.(rb|#{RbConfig::CONFIG['DLEXT']})\z/, '') }.sort!
shortest << names.shift
result.concat(names)
}
shortest.sort! | rest
)
end
|
#retrieve_files_to_require_relative_from_current_dir ⇒ Object
99
100
101
102
103
|
# File 'lib/irb/completion.rb', line 99
def retrieve_files_to_require_relative_from_current_dir
@files_from_current_dir ||= Dir.glob("**/*.{rb,#{RbConfig::CONFIG['DLEXT']}}", base: '.').map { |path|
path.sub(/\.(rb|#{RbConfig::CONFIG['DLEXT']})\z/, '')
}
end
|
#retrieve_gem_and_system_load_path ⇒ Object
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/irb/completion.rb', line 61
def retrieve_gem_and_system_load_path
candidates = (GEM_PATHS | $LOAD_PATH)
candidates.map do |p|
if p.respond_to?(:to_path)
p.to_path
else
String(p) rescue nil
end
end.compact.sort
end
|