Brian Schlect wrote:
> i want to be able to call get_methods in the parent class and have it
> return the functions of the child class as well. so in this example:
>
> test_obj = bravo.new
> bravo.get_methods

I'm confused. Do you want Alpha.get_methods to return Alpha's and
Bravo's methods, and Bravo.get_methods to return just Bravo's methods?

Or do you want the exact same list of methods returned regardless of
what level you call the method at?

Here's a solution for the former (and, because I wonder if it's
possibly what you want, it only includes the instance methods defined
by Alpha and Bravo):

class Alpha
  def self.inherited( subklass )
    @self_and_subklasses ||= [self]
 		@self_and_subklasses << subklass
  end

  def self.all_methods
    @self_and_subklasses ||= [self]
		@self_and_subklasses.map{ |klass|
      klass.instance_methods( false )
    }.flatten
  end

  def alpha_test1; end
  def alpha_test2; end
end

class Bravo < Alpha
  def bravo_test1; end
end

p Alpha.all_methods
#=> ["alpha_test1", "alpha_test2", "bravo_test1"]

p Bravo.all_methods
#=> ["bravo_test1"]