summaryrefslogtreecommitdiff
path: root/lib/rdoc/ri/ri_reader.rb
diff options
context:
space:
mode:
authordave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-12-24 04:24:29 +0000
committerdave <dave@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-12-24 04:24:29 +0000
commitf0346bd249ae29cdf4d9c2e88b09e63c41ff1ce8 (patch)
treec945829da8f2e7555a6b4cb7e11601dfafdc4d78 /lib/rdoc/ri/ri_reader.rb
parent52975bb7a77b3a6409e50609b4baeafade035b3d (diff)
Forgot to save buffer.... sigh
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rdoc/ri/ri_reader.rb')
-rw-r--r--lib/rdoc/ri/ri_reader.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/rdoc/ri/ri_reader.rb b/lib/rdoc/ri/ri_reader.rb
index dd647b3f89..ddce38f101 100644
--- a/lib/rdoc/ri/ri_reader.rb
+++ b/lib/rdoc/ri/ri_reader.rb
@@ -52,5 +52,19 @@ module RI
File.open(path) {|f| RI::Description.deserialize(f) }
end
+ # return the names of all classes and modules
+ def class_names
+ res = []
+ find_classes_in(res, @cache.toplevel)
+ end
+
+ def find_classes_in(res, klass)
+ classes = klass.classes_and_modules
+ for c in classes
+ res << c.name
+ find_classes_in(res, c)
+ end
+ res
+ end
end
end