Class RDoc::RI::Reader
In: ri/reader.rb
Parent: Object

Methods

Public Class methods

[Source]

    # File ri/reader.rb, line 8
 8:   def initialize(ri_cache)
 9:     @cache = ri_cache
10:   end

Public Instance methods

Return a list of all classes, modules, and methods

[Source]

    # File ri/reader.rb, line 79
79:   def all_names
80:     res = []
81:     find_names_in(res, @cache.toplevel)
82:   end

[Source]

    # File ri/reader.rb, line 24
24:   def find_class_by_name(full_name)
25:     names = full_name.split(/::/)
26:     ns = @cache.toplevel
27:     for name in names
28:       ns = ns.contained_class_named(name)
29:       return nil if ns.nil?
30:     end
31:     get_class(ns)
32:   end

[Source]

    # File ri/reader.rb, line 86
86:   def find_classes_in(res, klass)
87:     classes = klass.classes_and_modules
88:     for c in classes
89:       res << c.full_name
90:       find_classes_in(res, c)
91:     end
92:     res
93:   end

[Source]

    # File ri/reader.rb, line 34
34:   def find_methods(name, is_class_method, namespaces)
35:     result = []
36:     namespaces.each do |ns|
37:       result.concat ns.methods_matching(name, is_class_method)
38:     end
39:     result
40:   end

[Source]

     # File ri/reader.rb, line 95
 95:   def find_names_in(res, klass)
 96:     classes = klass.classes_and_modules
 97:     for c in classes
 98:       res << c.full_name
 99:       res.concat c.all_method_names
100:       find_names_in(res, c)
101:     end
102:     res
103:   end

Return the names of all classes and modules

[Source]

    # File ri/reader.rb, line 71
71:   def full_class_names
72:     res = []
73:     find_classes_in(res, @cache.toplevel)
74:   end

Return a class description

[Source]

    # File ri/reader.rb, line 54
54:   def get_class(class_entry)
55:     result = nil
56:     for path in class_entry.path_names
57:       path = RiWriter.class_desc_path(path, class_entry)
58:       desc = File.open(path) {|f| RI::Description.deserialize(f) }
59:       if result
60:         result.merge_in(desc)
61:       else
62:         result = desc
63:       end
64:     end
65:     result
66:   end

Return the MethodDescription for a given MethodEntry by deserializing the YAML

[Source]

    # File ri/reader.rb, line 46
46:   def get_method(method_entry)
47:     path = method_entry.path_name
48:     File.open(path) { |f| RI::Description.deserialize(f) }
49:   end

[Source]

    # File ri/reader.rb, line 16
16:   def lookup_namespace_in(target, namespaces)
17:     result = []
18:     for n in namespaces
19:       result.concat(n.contained_modules_matching(target))
20:     end
21:     result
22:   end

[Source]

    # File ri/reader.rb, line 12
12:   def top_level_namespace
13:     [ @cache.toplevel ]
14:   end

[Validate]