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
]
- 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
#completion_candidates(preposing, target, postposing, bind:) ⇒ Object
36
37
38
|
# File 'lib/irb/completion.rb', line 36
def completion_candidates(preposing, target, postposing, bind:)
raise NotImplementedError
end
|
#doc_namespace(preposing, matched, postposing, bind:) ⇒ Object
40
41
42
|
# File 'lib/irb/completion.rb', line 40
def doc_namespace(preposing, matched, postposing, bind:)
raise NotImplementedError
end
|
#retrieve_files_to_require_from_load_path ⇒ Object
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/irb/completion.rb', line 70
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
89
90
91
92
93
|
# File 'lib/irb/completion.rb', line 89
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
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/irb/completion.rb', line 59
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
|