如何检查Module#initialize?

时间:2012-08-26 18:23:17

标签: methods initialization ruby-1.9.3

我已经定义了一个模块Vehicle

module Vehicle
  def initialize(make, model)
  end

  def start
  end

  def stop
  end
end

我想使用Module#instance_methods和Module#instance_method来检查Vehicle中定义的实例方法,如

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

问题是Vehicle#instance_methods只返回[:start,:stop]。我如何检查初始化方法?

1 个答案:

答案 0 :(得分:2)

initialize未显示在公共实例方法列表中,因为它是私有的:

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

所以,你可以做到

Vehicle.instance_method("initialize").parameters