Sha256: f64f81adb5d4557b6675a4513a1d38e136584bec179d5049ab5000df971bbf10

Contents?: true

Size: 701 Bytes

Versions: 1

Compression:

Stored size: 701 Bytes

Contents

lass String
  def integer? 
    return true if self =~ /^[1-9]\d*(\.\d+)?$/
    false
  end
end

module TippyMun

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

    def generate
      return calculation if number_based?
      string_based
    end

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

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

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

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tippy_mun-0.1.8 lib/tippy_mun/builder.rb