Advertisement
Guest User

Untitled

a guest
May 28th, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. class Person
  2. attr_reader :factory
  3. attr_reader :name
  4.  
  5. def initialize(factory, name)
  6. @factory = factory
  7. @name = name
  8. end
  9.  
  10. def coworkers
  11. @factory.list
  12. end
  13.  
  14. def coworkers_count
  15. # the total size, minus yourself
  16. coworkers.size - 1
  17. end
  18. end
  19.  
  20. class PersonFactory
  21. attr_reader :list
  22.  
  23. def initialize
  24. @list = []
  25. end
  26.  
  27. private def add(person)
  28. @list << person
  29. person
  30. end
  31.  
  32. def create(*args)
  33. add Person.new(self, *args)
  34. end
  35. end
  36.  
  37.  
  38. icedragons_factory = PersonFactory.new
  39. workmad3_factory = PersonFactory.new
  40.  
  41. jr = icedragons_factory.create 'IceDragonjr'
  42. icedragons_factory.create 'SomeDude'
  43. icedragons_factory.create 'Bacon'
  44. icedragons_factory.create 'ExtraDude'
  45.  
  46. wjr = workmad3_factory.create 'Workmad3jr'
  47. workmad3_factory.create 'aPancake'
  48. workmad3_factory.create 'TheGreatBacon'
  49.  
  50.  
  51. jr.coworkers_count #=> 3
  52. wjr.coworkers_count #=> 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement