Skip to content

Instantly share code, notes, and snippets.

@hackervera
Created November 19, 2010 20:55
Show Gist options
  • Select an option

  • Save hackervera/707154 to your computer and use it in GitHub Desktop.

Select an option

Save hackervera/707154 to your computer and use it in GitHub Desktop.
require 'observer'
include Observable
class Controller
def temp(val)
changed
notify_observers(val)
end
end
class Horse
def initialize(name, maxtemp, controller)
@name = name
@controller = controller
@maxtemp = maxtemp
controller.add_observer(self)
end
def update(val)
if val > @maxtemp
puts "Fuck, #{self} has died of overheating"
@controller.delete_observer(self)
end
end
end
controller = Controller.new
Horse.new(Time.now, 10, controller)
Horse.new(Time.now, 20, controller)
controller.temp(110)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment