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
permalink
#command_candidates(target) ⇒ Object
[View source]
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
|
permalink
#completion_candidates(preposing, target, postposing, bind:) ⇒ Object
[View source]
38
39
40
|
# File 'lib/irb/completion.rb', line 38
def completion_candidates(preposing, target, postposing, bind:)
raise NotImplementedError
end
|
permalink
#doc_namespace(preposing, matched, postposing, bind:) ⇒ Object
[View source]
42
43
44
|
# File 'lib/irb/completion.rb', line 42
def doc_namespace(preposing, matched, postposing, bind:)
raise NotImplementedError
end
|
permalink
#retrieve_files_to_require_from_load_path ⇒ Object
[View source]
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
|
permalink
#retrieve_files_to_require_relative_from_current_dir ⇒ Object
[View source]
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
|
permalink
#retrieve_gem_and_system_load_path ⇒ Object
[View source]
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
|