Skip to main content
added 412 characters in body
Source Link
rdvdijk
  • 4.4k
  • 29
  • 30

How about:

class A def my_method(param1, param2, param3) # stuff end end A.instance_method(:my_method).parameters # => [[:req, :param1],[:req, :param2],[:req, :param3]] A.instance_method(:my_method).parameters.collect { |p| p[1] } # => [:param1, param2, param3] 

The parameters-method was introduced with ruby 1.9And if you do it on the irb console, as in your example:

>> def my_method(param1, param2, param3) >> # stuff >> end => nil >> def get_params(method_name) >> self.class.instance_method(method_name.to_sym).parameters.collect { |p| p[1] }.each { |name| puts name } >> end => nil >> get_params(:my_method) param1 param2 param3 => [:param1, :param2, :param3] 

(Copy/pasted from my irb console.2)

How about:

class A def my_method(param1, param2, param3) # stuff end end A.instance_method(:my_method).parameters # => [[:req, :param1],[:req, :param2],[:req, :param3]] A.instance_method(:my_method).parameters.collect { |p| p[1] } # => [:param1, param2, param3] 

The parameters-method was introduced with ruby 1.9.2

How about:

class A def my_method(param1, param2, param3) # stuff end end A.instance_method(:my_method).parameters # => [[:req, :param1],[:req, :param2],[:req, :param3]] A.instance_method(:my_method).parameters.collect { |p| p[1] } # => [:param1, param2, param3] 

And if you do it on the irb console, as in your example:

>> def my_method(param1, param2, param3) >> # stuff >> end => nil >> def get_params(method_name) >> self.class.instance_method(method_name.to_sym).parameters.collect { |p| p[1] }.each { |name| puts name } >> end => nil >> get_params(:my_method) param1 param2 param3 => [:param1, :param2, :param3] 

(Copy/pasted from my irb console.)

How about:

class A def my_method(param1, param2, param3) # stuff end end A.instance_method(:my_method).parameters # => [[:req, :param1],[:req, :param2],[:req, :param3]] A.instance_method(:my_method).parameters.collect { |p| p[1] } # => [:param1, param2, param3] 

The parameters-method was introduced with ruby 1.9.2

How about:

class A def my_method(param1, param2, param3) # stuff end end A.instance_method(:my_method).parameters # => [[:req, :param1],[:req, :param2],[:req, :param3]] A.instance_method(:my_method).parameters.collect { |p| p[1] } # => [:param1, param2, param3] 

How about:

class A def my_method(param1, param2, param3) # stuff end end A.instance_method(:my_method).parameters # => [[:req, :param1],[:req, :param2],[:req, :param3]] A.instance_method(:my_method).parameters.collect { |p| p[1] } # => [:param1, param2, param3] 

The parameters-method was introduced with ruby 1.9.2

Source Link
rdvdijk
  • 4.4k
  • 29
  • 30

How about:

class A def my_method(param1, param2, param3) # stuff end end A.instance_method(:my_method).parameters # => [[:req, :param1],[:req, :param2],[:req, :param3]] A.instance_method(:my_method).parameters.collect { |p| p[1] } # => [:param1, param2, param3]