Guest User

Untitled

a guest
Jan 18th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. # Write a program that prints out the numbers 1 to 100 (inclusive). If the number is
  2. # divisible by 3, print Crackle instead of the number. If it's divisible by 5, print Pop.
  3. # If it's divisible by both 3 and 5, print CracklePop. You can use any language.
  4. module CracklePop
  5. class CracklePop
  6. class << self
  7. def evaluate_and_print(number)
  8. puts evaluate(number)
  9. end
  10.  
  11. private
  12. def evaluate(number)
  13. return "CracklePop" if crackable?(number) && poppable?(number)
  14. return "Crackle" if crackable?(number)
  15. return "Pop" if poppable?(number)
  16. number
  17. end
  18.  
  19. def crackable?(number)
  20. number % 3 == 0
  21. end
  22.  
  23. def poppable?(number)
  24. number % 5 == 0
  25. end
  26. end
  27. end
  28.  
  29. refine Integer do
  30. def to_crackle_pop
  31. CracklePop.evaluate_and_print(self)
  32. end
  33. end
  34. end
  35.  
  36. class Blurgh
  37. using CracklePop
  38.  
  39. def self.run
  40. 1.upto 100 do |number|
  41. number.to_crackle_pop
  42. end
  43. end
  44. end
  45.  
  46. Blurgh.run
Add Comment
Please, Sign In to add comment