You need to grab a reference to the instance's singleton class, the class that holds all the instance specific stuff, and define the method on it. In ruby 1.8, it looks a little messy. (if you find a cleaner solution let me know!)
Ruby 1.8
class Example def initialize(test='hey') singleton = class << self; self end singleton.send :define_method, :say_hello, lambda { test } end end
Ruby 1.9 however, provides a much easier way in.
Ruby 1.9
class Example def initialize(test='hey') define_singleton_method :say_hello, lambda { test } end end