On Sun, Apr 13, 2008 at 02:17:37AM +0900, Tim Hunter wrote:
> Ryan Lewis wrote:
>> I need to make a way to run a method when class' instance variable
>> changes from false to true and only run it once. But I have no idea how
>> to do this.
>>
>> Any ideas?
>
> Check out the observer library.
>
>

why bother with observer if this can be nicely achieved with an
appropriate setter? something like ...

class SomeClass

  def initialize
    @switch = false
  end

  def switch=(value)
    on_switch_becomes_true if !@switch && (@switch = value)
  end

  def on_switch_becomes_true
    # ...
  end

end

g phil