Apparently, Tobias Reif recently wrote:
Hi
I’m writing a syntax highlighting program [code] for Ruby code listings
in XML (eg DocBook) documents.
To get the global variables I do
puts Kernel.global_variables
and to get the names of some common methods I do
puts methods
and
puts Kernel.methods
.
How to get the names of all classes? (all built-in classes or all
available)
I need to get “File”, “Hash”, etc.
Here is one way:
$ ruby -e ‘x = ; ObjectSpace.each_object { |o| x << o if o.class ==
Class }; p x’
[UnboundMethod, Method, Binding, Proc, SystemStackError, LocalJumpError,
Struct::Tms, Process::Status, Time, Dir, File::Stat, File, IO, EOFError,
IOError, Range, MatchData, Regexp, RegexpError, Struct, Hash, Array,
Bignum, Float, Fixnum, Integer, Numeric, FloatDomainError,
ZeroDivisionError, ThreadGroup, Continuation, Thread, ThreadError,
Errno::EDQUOT, Errno::EREMOTEIO, Errno::EISNAM, Errno::ENAVAIL,
Errno::ENOTNAM, Errno::EUCLEAN, Errno::ESTALE, Errno::EINPROGRESS,
Errno::EALREADY, Errno::EHOSTUNREACH, Errno::EHOSTDOWN,
Errno::ECONNREFUSED, Errno::ETIMEDOUT, Errno::ETOOMANYREFS,
Errno::ESHUTDOWN, Errno::ENOTCONN, Errno::EISCONN, Errno::ENOBUFS,
Errno::ECONNRESET, Errno::ECONNABORTED, Errno::ENETRESET,
Errno::ENETUNREACH, Errno::ENETDOWN, Errno::EADDRNOTAVAIL,
Errno::EADDRINUSE, Errno::EAFNOSUPPORT, Errno::EPFNOSUPPORT,
Errno::EOPNOTSUPP, Errno::ESOCKTNOSUPPORT, Errno::EPROTONOSUPPORT,
Errno::ENOPROTOOPT, Errno::EPROTOTYPE, Errno::EMSGSIZE,
Errno::EDESTADDRREQ, Errno::ENOTSOCK, Errno::EUSERS, Errno::ESTRPIPE,
Errno::ERESTART, Errno::EILSEQ, Errno::ELIBEXEC, Errno::ELIBMAX,
Errno::ELIBSCN, Errno::ELIBBAD, Errno::ELIBACC, Errno::EREMCHG,
Errno::EBADFD, Errno::ENOTUNIQ, Errno::EOVERFLOW, Errno::EBADMSG,
Errno::EDOTDOT, Errno::EMULTIHOP, Errno::EPROTO, Errno::ECOMM,
Errno::ESRMNT, Errno::EADV, Errno::ENOLINK, Errno::EREMOTE, Errno::ENOPKG,
Errno::ENONET, Errno::ENOSR, Errno::ETIME, Errno::ENODATA, Errno::ENOSTR,
Errno::EBFONT, Errno::EBADSLT, Errno::EBADRQC, Errno::ENOANO,
Errno::EXFULL, Errno::EBADR, Errno::EBADE, Errno::EL2HLT, Errno::ENOCSI,
Errno::EUNATCH, Errno::ELNRNG, Errno::EL3RST, Errno::EL3HLT,
Errno::EL2NSYNC, Errno::ECHRNG, Errno::EIDRM, Errno::ENOMSG, Errno::ELOOP,
Errno::ENOTEMPTY, Errno::ENOSYS, Errno::ENOLCK, Errno::ENAMETOOLONG,
Errno::EDEADLK, Errno::ERANGE, Errno::EDOM, Errno::EPIPE, Errno::EMLINK,
Errno::EROFS, Errno::ESPIPE, Errno::ENOSPC, Errno::EFBIG, Errno::ETXTBSY,
Errno::ENOTTY, Errno::EMFILE, Errno::ENFILE, Errno::EINVAL, Errno::EISDIR,
Errno::ENOTDIR, Errno::ENODEV, Errno::EXDEV, Errno::EEXIST, Errno::EBUSY,
Errno::ENOTBLK, Errno::EFAULT, Errno::EACCES, Errno::ENOMEM,
Errno::EAGAIN, Errno::ECHILD, Errno::EBADF, Errno::ENOEXEC, Errno::E2BIG,
Errno::ENXIO, Errno::EIO, Errno::EINTR, Errno::ESRCH, Errno::ENOENT,
Errno::EPERM, SystemCallError, NoMemoryError, SecurityError, RuntimeError,
NotImplementedError, LoadError, SyntaxError, ScriptError, NoMethodError,
NameError, RangeError, IndexError, ArgumentError, TypeError,
StandardError, Interrupt, SignalException, fatal, SystemExit, Exception,
String, FalseClass, TrueClass, Data, Symbol, NilClass, Class, Module,
Object]