From: Erik Veenstra Date: 2006-03-08T15:43:42+09:00 Subject: Re: Having a block executed in the context of an instance > button = Button.new do > caption = 'Click Me' > end Executing a block in another context isn't very readable. Ara's example is not the same as your situation. His situation is an example of a DSL, whereas your situation is just plain Ruby. So, IMHO, it should be coded in just plain Ruby: class Button def initialize yield(self) end end button = Button.new do |b| b.caption = 'Click Me' end Now it's obvious (by reading, not by knowing) what the block does. gegroet, Erik V. - http://www.erikveen.dds.nl/