someobject.methods.

Any array has lots of handy, built-in methods, which it gets from the Kernel module (mixed in by every object), the Enumerable module, and Array itself. (For example, somearray.shuffle returns a randomized version of the array.)

To see what comes from where, we'll make an array, and ask it: "array, please get me an alphabetized list of your methods, go through that list, and print a statement saying where each one was defined." (Thanks to several respondents on Stackoverflow for showing me this.)

The resulting list presents all kinds of opportunities for exploration. (For example, "tainted?" is very interesting.)

irb(main):001:0> a = Array.new => [] irb(main):002:0> a.methods.sort.collect {|m| puts "#{m} defined by #{a.method(m).owner}"} & defined by Array * defined by Array + defined by Array - defined by Array << defined by Array <=> defined by Array == defined by Array === defined by Kernel =~ defined by Kernel [] defined by Array []= defined by Array __id__ defined by Kernel __send__ defined by Kernel all? defined by Enumerable any? defined by Enumerable assoc defined by Array at defined by Array choice defined by Array class defined by Kernel clear defined by Array clone defined by Kernel collect defined by Array collect! defined by Array combination defined by Array compact defined by Array compact! defined by Array concat defined by Array count defined by Array cycle defined by Array delete defined by Array delete_at defined by Array delete_if defined by Array detect defined by Enumerable display defined by Kernel drop defined by Array drop_while defined by Array dup defined by Kernel each defined by Array each_cons defined by Enumerable each_index defined by Array each_slice defined by Enumerable each_with_index defined by Enumerable empty? defined by Array entries defined by Enumerable enum_cons defined by Enumerable enum_for defined by Kernel enum_slice defined by Enumerable enum_with_index defined by Enumerable eql? defined by Array equal? defined by Kernel extend defined by Kernel fetch defined by Array fill defined by Array find defined by Enumerable find_all defined by Enumerable find_index defined by Array first defined by Array flatten defined by Array flatten! defined by Array freeze defined by Kernel frozen? defined by Array grep defined by Enumerable group_by defined by Enumerable hash defined by Array id defined by Kernel include? defined by Array index defined by Array indexes defined by Array indices defined by Array inject defined by Enumerable insert defined by Array inspect defined by Array instance_eval defined by Kernel instance_exec defined by Kernel instance_of? defined by Kernel instance_variable_defined? defined by Kernel instance_variable_get defined by Kernel instance_variable_set defined by Kernel instance_variables defined by Kernel is_a? defined by Kernel join defined by Array kind_of? defined by Kernel last defined by Array length defined by Array map defined by Array map! defined by Array max defined by Enumerable max_by defined by Enumerable member? defined by Enumerable method defined by Kernel methods defined by Kernel min defined by Enumerable min_by defined by Enumerable minmax defined by Enumerable minmax_by defined by Enumerable nil? defined by Kernel nitems defined by Array none? defined by Enumerable object_id defined by Kernel one? defined by Enumerable pack defined by Array partition defined by Enumerable permutation defined by Array pop defined by Array private_methods defined by Kernel product defined by Array protected_methods defined by Kernel public_methods defined by Kernel push defined by Array rassoc defined by Array reduce defined by Enumerable reject defined by Array reject! defined by Array replace defined by Array respond_to? defined by Kernel reverse defined by Array reverse! defined by Array reverse_each defined by Array rindex defined by Array select defined by Array send defined by Kernel shift defined by Array shuffle defined by Array shuffle! defined by Array singleton_methods defined by Kernel size defined by Array slice defined by Array slice! defined by Array sort defined by Array sort! defined by Array sort_by defined by Enumerable taint defined by Kernel tainted? defined by Kernel take defined by Array take_while defined by Array tap defined by Kernel to_a defined by Array to_ary defined by Array to_enum defined by Kernel to_s defined by Array transpose defined by Array type defined by Kernel uniq defined by Array uniq! defined by Array unshift defined by Array untaint defined by Kernel values_at defined by Array zip defined by Array | defined by Array