./ruby/print_classes_methods.rb

download original
#!/usr/bin/ruby


def print_module(mod)

  (mod.instance_methods - ((mod.ancestors-[mod]).map{|a|a.instance_methods}).flatten).each {|m|
    print "#{mod}.#{m}\n"
  }
  (mod.methods - (mod.ancestors - [mod]).map{|a|a.methods}.flatten).each {|m|
    print "#{mod}.#{m}    (class method)\n"
  }
end

def print_all_modules
  ObjectSpace.each_object(Module) {|mod|
    print_module(mod)
  }
end

def print_modules(name_match=nil)
  name_match = /#{name_match}/ if name_match.kind_of? String
  ObjectSpace.each_object(Module) {|mod|
    print_module(mod) if (if name_match then mod.name =~ name_match else yield(mod) end)
  }
end



if __FILE__ == $0
  print_all_modules
end

  
back to ruby

(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>