Returning the names of each defined method

K

Kain Nobel

Good day everybody!

I was curious, for code that isn't veiwable, how would I print each
defined method in a class/module? For instance... lets say that File
happened to be a hidden class, how could I make the interpreter p or
print each method that is defined in class File?
 
B

Brian Candler

Kain said:
I was curious, for code that isn't veiwable, how would I print each
defined method in a class/module? For instance... lets say that File
happened to be a hidden class, how could I make the interpreter p or
print each method that is defined in class File?

What do you mean by a "hidden class", or "code that isn't viewable"? If
the Ruby interpreter is able to read a .rb file, then so are you.

But in any case there are a number of reflection methods, for example:

irb(main):001:0> File.instance_methods - Object.instance_methods
=> ["select", "read", "<<", "lineno=", "tell", "mtime", "fileno",
"partition", "print", "rewind", "pid", "readpartial", "grep",
"readlines", "stat", "truncate", "tty?", "seek", "reject", "getc",
"binmode", "to_io", "ctime", "pos", "putc", "closed?", "member?",
"readchar", "find", "pos=", "close_read", "each_with_index",
"each_line", "lstat", "reopen", "to_i", "collect", "sysseek", "all?",
"entries", "fsync", "puts", "eof", "detect", "ungetc", "zip",
"each_byte", "flock", "close_write", "syswrite", "map", "any?", "ioctl",
"chmod", "sync", "sort", "include?", "min", "gets", "sync=", "flush",
"find_all", "write", "isatty", "each", "atime", "sysread", "inject",
"printf", "eof?", "fcntl", "path", "sort_by", "chown", "lineno", "max",
"readline", "close"]

For more info see
http://www.ruby-doc.org/docs/ProgrammingRuby/html/ospace.html
 
S

Siep Korteling

Kain said:
Good day everybody!

I was curious, for code that isn't veiwable, how would I print each
defined method in a class/module? For instance... lets say that File
happened to be a hidden class, how could I make the interpreter p or
print each method that is defined in class File?

p File.methods
#or
puts File.methods.sort

# you can't use all these methods, some of them are private. To exclude
these:

puts File.public_methods.sort

# Works on instances, too.

puts "somestring".public_methods.sort

hth,

Siep
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top