Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Looking at your Observer Pattern
- class Chore
- attr_accessor :name, :is_done, :by_who
- def initialize(name)
- self.name = name
- self.is_done = false
- end
- def on_done(&callback)
- self.on_done_observers << callback
- end
- def done(who)
- self.by_who = who
- self.is_done = true
- on_done_observers.each do |callback|
- callback.call(self)
- end
- self
- end
- def on_done_observers
- @on_done_observers ||=[]
- end
- end
- #in pry, load/require
- #c = Chore.new("wash windows")
- #c.done("Freddie")
- #c.on_done {|obj| puts "good job!! #{obj.by_who} did #{obj.name}" }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement