diff options
Diffstat (limited to 'lib/rdoc/ri/ri_reader.rb')
-rw-r--r-- | lib/rdoc/ri/ri_reader.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/rdoc/ri/ri_reader.rb b/lib/rdoc/ri/ri_reader.rb new file mode 100644 index 0000000..f7e9e30 --- /dev/null +++ b/lib/rdoc/ri/ri_reader.rb @@ -0,0 +1,46 @@ +require 'rdoc/ri/ri_descriptions' +require 'rdoc/ri/ri_writer' +require 'rdoc/markup/simple_markup/to_flow' + +module RI + class RiReader + + def initialize(ri_cache) + @cache = ri_cache + end + + def top_level_namespace + [ @cache.toplevel ] + end + + def lookup_namespace_in(target, namespaces) + result = [] + for n in namespaces + result.concat(n.contained_modules_matching(target)) + end + result + end + + def find_methods(name, is_class_method, namespaces) + result = [] + namespaces.each do |ns| + result.concat ns.methods_matching(name) + end + result + end + + # return the MethodDescription for a given MethodEntry + # by deserializing the YAML + def get_method(method_entry) + path = method_entry.path_name + File.open(path) { |f| RI::Description.deserialize(f) } + end + + # Return a class description + def get_class(class_entry) + path = RiWriter.class_desc_path(class_entry.path_name, class_entry) + File.open(path) {|f| RI::Description.deserialize(f) } + end + + end +end |