Class RI::RiReader
In: ri/ri_reader.rb
Parent: Object

Methods

Public Class methods

[Source]

    # File ri/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/ri_reader.rb, line 71
71:     def all_names
72:       res = []
73:       find_names_in(res, @cache.toplevel)
74:     end

[Source]

    # File ri/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/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

return the names of all classes and modules

[Source]

    # File ri/ri_reader.rb, line 65
65:     def full_class_names
66:       res = []
67:       find_classes_in(res, @cache.toplevel)
68:     end

Return a class description

[Source]

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

return the MethodDescription for a given MethodEntry by deserializing the YAML

[Source]

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

[Source]

    # File ri/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/ri_reader.rb, line 12
12:     def top_level_namespace
13:       [ @cache.toplevel ]
14:     end

[Validate]