diff options
Diffstat (limited to 'lib/rdoc/ri/ri_reader.rb')
-rw-r--r-- | lib/rdoc/ri/ri_reader.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/rdoc/ri/ri_reader.rb b/lib/rdoc/ri/ri_reader.rb index 02e6d49b79..6e53bd2609 100644 --- a/lib/rdoc/ri/ri_reader.rb +++ b/lib/rdoc/ri/ri_reader.rb @@ -58,6 +58,16 @@ module RI find_classes_in(res, @cache.toplevel) end + # return a list of all classes, modules, and methods + def all_names + res = [] + find_names_in(res, @cache.toplevel) + end + + # ---- + private + # ---- + def find_classes_in(res, klass) classes = klass.classes_and_modules for c in classes @@ -66,5 +76,16 @@ module RI end res end + + def find_names_in(res, klass) + classes = klass.classes_and_modules + for c in classes + res << c.full_name + res.concat c.all_method_names + find_names_in(res, c) + end + res + end + end end |