I've been trying to dynamically define some instance methods in Ruby 1.9. Here's the code I've been using to try this out:

```
class Testing
  [:one, :two].each do |name|
    define_method(name) do
      puts __method__
    end
  end
end

```

And here's the output:

```
ruby-1.9.2-p180 :008 > t = Testing.new
 => #<Testing:0x00000100961878> 
ruby-1.9.2-p180 :009 > t.one
two
 => nil 
ruby-1.9.2-p180 :010 > t.two
two
 => nil 
ruby-1.9.2-p180 :011 > 

```

I would expect the result to be `one` and `two` respectively. If I call `define_method` of each one outside of the iteration it works as expected. What am I not understanding here? 

Here is one of many examples I saw around online of define\_method being called in an iteration. [Dynamically defined setter methods using define\_method?](https://stackoverflow.com/questions/2499247/dynamically-defined-setter-methods-using-define-method)

What's missing?

Also: Using `__method__` isn't critical for me, but it was the best way I could show, that it seems like only the last block sent to `define_method` is being used for the defined methods. Maybe that is starting to explain the problem to me, but I still don't understand..