Class: Tippy::Builder

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

Instance Method Summary collapse

Constructor Details

#initialize(total:, gratuity:) ⇒ Builder

Returns a new instance of Builder.



4
5
6
7
# File 'lib/tip/builder.rb', line 4

def initialize total:, gratuity:
    @total = total
    @gratuity = gratuity
end

Instance Method Details

#calculation(gratuity = @gratuity) ⇒ Object



26
27
28
# File 'lib/tip/builder.rb', line 26

def calculation gratuity = @gratuity
    @total += @total * (gratuity.to_f / 100)
end

#generateObject



9
10
11
12
# File 'lib/tip/builder.rb', line 9

def generate
    return calculation if number_based?
    string_based
end

#number_based?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/tip/builder.rb', line 14

def number_based?
    (@gratuity.is_a? Numeric) || (@gratuity.integer?)
end

#string_basedObject



18
19
20
21
22
23
24
# File 'lib/tip/builder.rb', line 18

def string_based
    case @gratuity.downcase
    when 'high'       then calculation 25
    when 'standard'   then calculation 18
    when 'low'        then calculation 15
    end
end