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