Sha256: 10a9ed0b37f1fad710efb90768b4baa8b01e4c28b73ebc8d57a6cfb305f00324

Contents?: true

Size: 552 Bytes

Versions: 3

Compression:

Stored size: 552 Bytes

Contents

require_relative 'fizz'
require_relative 'buzz'
require_relative 'fizz_buzz'
require_relative 'not_fizz_buzz'

class FizzBuzzFactory
  def self.create(number)
    @number = number
    if self.fizz?
      Fizz.new
    elsif self.buzz?
      Buzz.new
    elsif self.fizz_buzz?
      FizzBuzz.new
    else
      NotFizzBuzz.new
    end
  end

  private
  def self.fizz?
    @number % 3 == 0 && @number % 5 != 0
  end

  def self.buzz?
    @number % 3 != 0 && @number % 5 == 0
  end

  def self.fizz_buzz?
    @number % 3 == 0 && @number % 5 == 0
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
etude_for_ruby-0.2.3 lib/fizz_buzz/fizz_buzz_factory.rb
etude_for_ruby-0.1.4 lib/fizz_buzz/fizz_buzz_factory.rb
etude_for_ruby-0.1.0 lib/fizz_buzz/fizz_buzz_factory.rb