Advertisement
liao2512

Untitled

Jan 26th, 2023
1,235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.64 KB | None | 0 0
  1. class PingPongPrinter
  2.   def initialize(range: 1..100, ping: 3, pong: 5)
  3.     @range = range
  4.     @ping  = ping
  5.     @pong  = pong
  6.   end
  7.  
  8.   def print
  9.     @range.each {|n| p ping_pong_detect(n) }
  10.   end
  11.  
  12.   private
  13.  
  14.     def ping_pong_detect(n)
  15.       case n
  16.       when ping_pong?
  17.         'APingBPong'
  18.       when ping?
  19.         'APing'
  20.       when pong?
  21.         'BPong'
  22.       else
  23.         n
  24.       end
  25.     end
  26.  
  27.     def ping?
  28.       proc { |n| n % @ping == 0 }
  29.     end
  30.  
  31.     def pong?
  32.       proc { |n| n % @pong == 0 }
  33.     end
  34.  
  35.     def ping_pong?
  36.       proc { |n| n % (@ping * @pong) == 0 }
  37.     end
  38.   end
  39.  
  40. PingPongPrinter.new.print
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement