class FastRI::RiIndex::ClassEntry

Attributes

full_name[R]
index[R]
name[R]
source_index[R]

Public Class Methods

new(ri_index, fullname, index, source_index) click to toggle source
# File lib/fastri/ri_index.rb, line 125
def initialize(ri_index, fullname, index, source_index)
  @ri_index = ri_index
  @full_name = fullname
  @name = fullname.split(/::/).last
  @index = index
  @source_index = source_index
end

Public Instance Methods

all_method_names() click to toggle source

Returns all methods, both instance and singleton (non-recursive).

# File lib/fastri/ri_index.rb, line 179
def all_method_names
  @ri_index.methods_under(self, false, @source_index).map{|meth| meth.full_name}
end
classes_and_modules() click to toggle source

Returns all nested classes and modules (non-recursive).

# File lib/fastri/ri_index.rb, line 153
def classes_and_modules
  @ri_index.namespaces_under(self, false, @source_index)
end
contained_class_named(name) click to toggle source

Returns nested class or module named exactly name (non-recursive).

# File lib/fastri/ri_index.rb, line 158
def contained_class_named(name)
  contained_modules_matching(name).find{|x| x.name == name}
end
contained_modules_matching(name) click to toggle source

Returns nested classes and modules matching name (non-recursive).

# File lib/fastri/ri_index.rb, line 146
def contained_modules_matching(name)
  @ri_index.namespaces_under(self, false, @source_index).select do |x|
    x.name[name]
  end
end
methods_matching(name, is_class_method) click to toggle source

Returns instance or singleton methods matching name (non-recursive).

# File lib/fastri/ri_index.rb, line 163
def methods_matching(name, is_class_method)
  @ri_index.methods_under(self, false, @source_index).select do |meth|
    meth.name[name] &&
      (is_class_method ? meth.singleton_method? : meth.instance_method?)
  end
end
path_names() click to toggle source

Returns an array of directory names holding the cdesc-Classname.yaml files.

# File lib/fastri/ri_index.rb, line 135
def path_names
  prefix = @full_name.split(/::/)
  case @source_index
  when nil
    @ri_index.source_paths_for(self).map{|path| File.join(path, *prefix) }
  else
    [File.join(@ri_index.paths[@source_index], *prefix)]
  end
end
recursively_find_methods_matching(name, is_class_method) click to toggle source

Returns instance or singleton methods matching name (recursive).

# File lib/fastri/ri_index.rb, line 171
def recursively_find_methods_matching(name, is_class_method)
  @ri_index.methods_under(self, true, @source_index).select do |meth|
    meth.name[name] && 
      (is_class_method ? meth.singleton_method? : meth.instance_method?)
  end
end
type() click to toggle source

Returns the type of this entry (:namespace).

# File lib/fastri/ri_index.rb, line 184
def type
  :namespace
end