"Jeff Davis" <jdavis-list / empires.org> schrieb im Newsbeitrag 
news:41FC41A1.6060304 / empires.org...
>E S wrote:
>
>>Jeff Davis wrote:
>>
>>
>>>I am learning Ruby and one thing I sometimes find difficult is knowing 
>>>what methods, constants, and classes are available in a given context.
>>>
>>>One example was I required a module, but I didn't know everything that 
>>>the module contained. Is there a way to know everything that you can call 
>>>in a given context? All the symbols that are available?
>>>
>>
>>If you want to know what a unit contains, www.ruby-doc.org is a good 
>>resource (or you can use ri, or line completion in irb). If you want your 
>>*code* to know what's available, try these:
>>
>>Object#instance_variables
>>Object#private_methods
>>Object#protected_methods
>>Object#public_methods
>>Object#singleton_methods
>>Module#constants
>>Module#instance_methods
>>Module#private_instance_methods
>>Module#protected_instance_methods
>>Module#public_instance_methods
>>Kernel#global_variables
>>Kernel#local_variables
>>
>>
>>
> Thanks, that's exactly what I was looking for. And thanks for the help on 
> the other question also.

I use IRB a lot with this shell alias:
irb is aliased to `irb -r irb/completion'

That way you can hit tab with an instance and get all available methods:

$ irb
irb(main):001:0> a=%w{a bc d}
=> ["a", "bc", "d"]
irb(main):002:0> a.
Display all 107 possibilities? (y or n)
                         a.each_index             a.indices 
a.nitems                 a.size
a.__id__                 a.each_with_index        a.inject 
a.object_id              a.slice
a.__send__               a.empty?                 a.insert 
a.pack                   a.slice!
a.all?                   a.entries                a.inspect 
a.partition              a.sort
a.any?                   a.eql?                   a.instance_eval 
a.pop                    a.sort!
a.assoc                  a.equal?                 a.instance_of? 
a.private_methods        a.sort_by
a.at                     a.extend                 a.instance_variable_get 
a.protected_methods      a.taint
a.class                  a.fetch                  a.instance_variable_set 
a.public_methods         a.tainted?
a.clear                  a.fill                   a.instance_variables 
a.push                   a.to_a
a.clone                  a.find                   a.is_a? 
a.rassoc                 a.to_ary
a.collect                a.find_all               a.join 
a.reject                 a.to_s
a.collect!               a.first                  a.kind_of? 
a.reject!                a.transpose
a.compact                a.flatten                a.last 
a.replace                a.type
a.compact!               a.flatten!               a.length 
a.respond_to?            a.uniq
a.concat                 a.freeze                 a.map 
a.reverse                a.uniq!
a.delete                 a.frozen?                a.map! 
a.reverse!               a.unshift
a.delete_at              a.grep                   a.max 
a.reverse_each           a.untaint
a.delete_if              a.hash                   a.member? 
a.rindex                 a.values_at
a.detect                 a.id                     a.method 
a.select                 a.zip
a.display                a.include?               a.methods 
a.send
a.dup                    a.index                  a.min 
a.shift
a.each                   a.indexes                a.nil? 
a.singleton_methods
irb(main):002:0> a.

Kind regards

    robert