Attempts to produce a list of all available classes and methods available in the current Ruby instance.
Currently does not retrieve methods of Object class and it's ancestors (e.g. BasicObject) - Perhaps this should be added
| arr = [] | |
| arr << "Ruby version " + ::RUBY_VERSION | |
| arr << "" | |
| Module.constants.each do |const| | |
| if ::Module.const_defined? const | |
| #If for whatever reason const_get fails, then rescue. | |
| begin | |
| obj = Module.const_get(const) | |
| if obj | |
| if obj.is_a? Class | |
| # Class methods | |
| arr << (obj.singleton_methods).sort.map do |method_sym| | |
| obj.to_s + "::" + method_sym.to_s | |
| end | |
| # Instance methods | |
| arr << (obj.instance_methods - (obj.superclass ? obj.superclass.instance_methods : []) - Object.methods).sort.map do |method_sym| | |
| "#<" + obj.to_s + ">." + method_sym.to_s | |
| end | |
| elsif obj.is_a? Module | |
| arr << (obj.methods - Module.methods).sort.map do |method_sym| | |
| obj.to_s + "::" + method_sym.to_s | |
| end | |
| else | |
| # Methods | |
| arr << "::" + const.to_s | |
| end | |
| end | |
| rescue | |
| end | |
| end | |
| end | |
| File.new("U:\\methods_#{::RUBY_VERSION}.txt","w").write(arr.flatten.sort.join("\n")) |
| arr = [] | |
| arr << "ICM version " + WSApplication::version if WSApplication | |
| arr << "Ruby version " + ::RUBY_VERSION | |
| arr << "" | |
| Module.constants.each do |const| | |
| if ::Module.const_defined? const | |
| #If for whatever reason const_get fails, then rescue. | |
| begin | |
| obj = Module.const_get(const) | |
| if obj | |
| if obj.is_a? Class | |
| # Class methods | |
| arr << (obj.singleton_methods).sort.map do |method_sym| | |
| obj.to_s + "::" + method_sym.to_s | |
| end | |
| # Instance methods | |
| arr << (obj.instance_methods - (obj.superclass ? obj.superclass.instance_methods : []) - Object.methods).sort.map do |method_sym| | |
| "#<" + obj.to_s + ">." + method_sym.to_s | |
| end | |
| elsif obj.is_a? Module | |
| arr << (obj.methods - Module.methods).sort.map do |method_sym| | |
| obj.to_s + "::" + method_sym.to_s | |
| end | |
| else | |
| # Methods | |
| arr << "::" + const.to_s | |
| end | |
| end | |
| rescue | |
| end | |
| end | |
| end | |
| File.new("U:\\methods_#{::RUBY_VERSION}_#{WSApplication::version}.txt","w").write(arr.flatten.sort.join("\n")) |