Method parameters reflection

Hello everyone,

I would like to use some kind of reflection to get the parameters of a
method.
For example:

class MyClass
  def simple_method(last_name, name)
  end
end

method_params(MyClass, :simple_method)
=> [:last_name, :name]

I have implement this using ParseTree, but since ParseTree uses
RubyInline which requires a C compiler, and AFAIK is not portable, I
would like a better solution.

Anyone has an idea?

George.

George Moschovitis wrote:

Hello everyone,

I would like to use some kind of reflection to get the parameters of a
method.

[snip]

I have wanted this, too, but AFAIK there is no
good solution at present.

Hal

George Moschovitis wrote:

ParseTree is a great solution, but it uses RubyInline which
requires a C compiler (typically gcc). No luck with Windows.

I _think_ ParseTree could use RubyDL like EvilRuby. This would be something nice to have in Ruby 1.9. In the meantime I will try to play a bit with EvilRuby, or perhaps Florian Gross could help here :slight_smile: :slight_smile:

Well, EvilRuby does not do this either as it's quite some work to dig through all the pointers in that structures.

And porting ParseTree over to Ruby/DL could be problematic as well... (It does a lot of its logic in C and Ruby/DL does AFAIK not yet work correctly on 64 bit machines.)