Sandi Metzのレクチャーを参照しながらFizBuz
# 3 - fiz, 5 - buz, 15 - fizbuz
# 2 - Hadoken, 7 - sonicboom, 14 - kaioh-ken.....
# you can add&delete whatever any kind of things message, methods, class....
require 'pry'
class DoFizBuz
attr_reader :int
attr_accessor :divisible_by_which
DEVIDER = [3, 5, 15, 2, 7, 14, 100, 28].sort.reverse
def initialize(int)
@int = int
@divisible_num = divisible_num
end
def divisible_num
DEVIDER.find{|num| int%num == 0}
end
def factory
if divisible_num == nil
p int
else
Object.const_get("Message#{divisible_num}").new.message
end
end
end
class Message3
def message
p "Fiz"
end
end
class Message5
def message
p "Buz"
end
end
class Message15
def message
p "FizBuz"
end
end
class Message2
def message
p "Ha doh ken"
end
end
class Message7
def message
p "Show Ryu Ken"
end
end
class Message14
def message
p "Shin-ku Ha doh ken!!"
end
end
class Message28
def message
p "Time is - #{Time.now} - now "
end
end
class Message100
def message
p "Kah- Mae- Ha- Mae- Ha---!!!!"
end
end
(1..100).to_a.each{|num| DoFizBuz.new(num).factory}