Sha256: 579add226934ce0cc9c9a47bfb2e26d8a37c99521250e66683f3499cff53d7b1

Contents?: true

Size: 709 Bytes

Versions: 1

Compression:

Stored size: 709 Bytes

Contents

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

module JakubMyNewGem

  class Build
    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
jakub_my_new_gem-0.1.4 lib/jakub_my_new_gem/build.rb