Advertisement
Guest User

Untitled

a guest
May 25th, 2016
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1. #Looking at your Observer Pattern
  2.  
  3. class Chore
  4. attr_accessor :name, :is_done, :by_who
  5.  
  6. def initialize(name)
  7. self.name = name
  8. self.is_done = false
  9. end
  10.  
  11.  
  12. def on_done(&callback)
  13. self.on_done_observers << callback
  14.  
  15. end
  16.  
  17. def done(who)
  18. self.by_who = who
  19. self.is_done = true
  20.  
  21. on_done_observers.each do |callback|
  22. callback.call(self)
  23. end
  24. self
  25.  
  26. end
  27.  
  28. def on_done_observers
  29. @on_done_observers ||=[]
  30. end
  31. end
  32.  
  33. #in pry, load/require
  34. #c = Chore.new("wash windows")
  35. #c.done("Freddie")
  36. #c.on_done {|obj| puts "good job!! #{obj.by_who} did #{obj.name}" }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement