We found this class in more tha one place, so add in the name from there.
# File rdoc/ri/ri_cache.rb, line 19
def add_path(path)
@path_names << path
end
Return a list of all out method names
# File rdoc/ri/ri_cache.rb, line 102
def all_method_names
res = @class_methods.map {|m| m.full_name }
@instance_methods.each {|m| res << m.full_name}
res
end
# File rdoc/ri/ri_cache.rb, line 67
def classes_and_modules
@inferior_classes
end
Return an exact match to a particular name
# File rdoc/ri/ri_cache.rb, line 72
def contained_class_named(name)
@inferior_classes.find {|c| c.name == name}
end
Return a list of any classes or modules that we contain that match a given string
# File rdoc/ri/ri_cache.rb, line 63
def contained_modules_matching(name)
@inferior_classes.find_all {|c| c.name[name]}
end
Return our full name
# File rdoc/ri/ri_cache.rb, line 95
def full_name
res = @in_class.full_name
res << "::" unless res.empty?
res << @name
end
read in our methods and any classes and modules in our namespace. Methods are stored in files called name-c|i.yaml, where the ‘name’ portion is the external form of the method name and the c|i is a class|instance flag
# File rdoc/ri/ri_cache.rb, line 30
def load_from(dir)
Dir.foreach(dir) do |name|
next if name =~ /^\./
# convert from external to internal form, and
# extract the instance/class flag
if name =~ /^(.*?)-(c|i).yaml$/
external_name = $1
is_class_method = $2 == "c"
internal_name = RiWriter.external_to_internal(external_name)
list = is_class_method ? @class_methods : @instance_methods
path = File.join(dir, name)
list << MethodEntry.new(path, internal_name, is_class_method, self)
else
full_name = File.join(dir, name)
if File.directory?(full_name)
inf_class = @inferior_classes.find {|c| c.name == name }
if inf_class
inf_class.add_path(full_name)
else
inf_class = ClassEntry.new(full_name, name, self)
@inferior_classes << inf_class
end
inf_class.load_from(full_name)
end
end
end
end
return the list of local methods matching name We’re split into two because we need distinct behavior when called from the toplevel
# File rdoc/ri/ri_cache.rb, line 79
def methods_matching(name, is_class_method)
local_methods_matching(name, is_class_method)
end
Find methods matching ‘name’ in ourselves and in any classes we contain
# File rdoc/ri/ri_cache.rb, line 85
def recursively_find_methods_matching(name, is_class_method)
res = local_methods_matching(name, is_class_method)
@inferior_classes.each do |c|
res.concat(c.recursively_find_methods_matching(name, is_class_method))
end
res
end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please see Improve the docs, or visit Documenting-ruby.org.