0

I have defined a module Vehicle such that

module Vehicle
  def initialize(make, model)
  end

  def start
  end

  def stop
  end
end

I want to inspect the instance methods defined in Vehicle using Module#instance_methods and Module#instance_method like

Vehicle.instance_methods.each do |method|
  Vehicle.instance_method(method).parameters
end

The problem is Vehicle#instance_methods only returns [:start, :stop]. How do I inspect the initialize method?

Mike Bradford
  • 240
  • 2
  • 10

1 Answers1

2

initialize doesn't show up in the list of public instance methods since it's private:

>> Vehicle.instance_methods
=> ["start", "stop"]
>> Vehicle.private_instance_methods
=> ["initialize"]

So, you can just do

Vehicle.instance_method("initialize").parameters
nneonneo
  • 171,345
  • 36
  • 312
  • 383