main
1require "spec_helper"
2class FizzBuzz
3 def print(item, printer)
4 printer << "Fizz" if fizzy?(item)
5 printer << "Buzz" if buzzy?(item)
6 #printer << item unless fizzy?(item) || buzzy?(item)
7 printer << item if printer.string == ""
8 end
9
10 def fizzy?(item)
11 (item % 3) == 0
12 end
13
14 def buzzy?(item)
15 (item % 5) == 0
16 end
17end
18
19describe FizzBuzz do
20 subject { FizzBuzz.new }
21 let(:printer) { StringIO.new }
22
23 it "should return Fizz for multiples of 3" do
24 subject.print(3, printer)
25 expect(printer.string).to eq("Fizz")
26 end
27
28 it "should return Buzz for multiples of 5" do
29 subject.print(5, printer)
30 expect(printer.string).to eq("Buzz")
31 end
32
33 it "should return FizzBuzz for multiples of 3 and 5" do
34 subject.print(15, printer)
35 expect(printer.string).to eq("FizzBuzz")
36 end
37
38 it "should return the number for everything else" do
39 subject.print(16, printer)
40 expect(printer.string).to eq("16")
41 end
42end