Class: Fizzbuzz

Inherits:
Object
  • Object
show all
Defined in:
lib/fizzbuzz_approach5.rb

Overview

approach 5

Functional requirement - Fizzbuzz traditional game Non-Functional requirement - Maintainability + Availability + Testability + Usability Trade-off => Time => O(mn)

Constant Summary collapse

DEFAULT_START =

define default value

1
DEFAULT_FINISH =
100
DEFAULT_CON =
{"Fizz" => 3, "Buzz" => 5}

Class Method Summary collapse

Class Method Details

.multiple_of(num, denom) ⇒ Object

check whether denom is a multiple of num require 2 params

Returns:

  • boolean



19
20
21
# File 'lib/fizzbuzz_approach5.rb', line 19

def self.multiple_of(num, denom)
    num % denom == 0 ? true : false
end

.start(start = DEFAULT_START, finish = DEFAULT_FINISH, condition = DEFAULT_CON) ⇒ Object

print Fizz when i is multiple of 3 and print Buzz when i is multiple of 5 require 3 params

Returns:

  • array of result



29
30
31
32
33
34
# File 'lib/fizzbuzz_approach5.rb', line 29

def self.start(start=DEFAULT_START, finish=DEFAULT_FINISH, condition=DEFAULT_CON)
    (start..finish).map do |i|
        array = condition.select {|key, value| multiple_of(i, value)}
        array.size > 0 ? array.map{|key| key.first}.join : i
    end
end