| Class | RI::RiReader |
| In: |
ri/ri_reader.rb
|
| Parent: | Object |
return a list of all classes, modules, and methods
# File ri/ri_reader.rb, line 71
71: def all_names
72: res = []
73: find_names_in(res, @cache.toplevel)
74: end
# 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
# File ri/ri_reader.rb, line 80
80: def find_classes_in(res, klass)
81: classes = klass.classes_and_modules
82: for c in classes
83: res << c.full_name
84: find_classes_in(res, c)
85: end
86: res
87: end
# 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
# File ri/ri_reader.rb, line 89
89: def find_names_in(res, klass)
90: classes = klass.classes_and_modules
91: for c in classes
92: res << c.full_name
93: res.concat c.all_method_names
94: find_names_in(res, c)
95: end
96: res
97: end
return the names of all classes and modules
# 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
# 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
# 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
# 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