Sha256: 35689cbe75e537ab797e19982c13297c3851c80012ab01147a24bba5b59c23d9
Contents?: true
Size: 1.34 KB
Versions: 2
Compression:
Stored size: 1.34 KB
Contents
# frozen_string_literal: true module FriendlyShipping class Rate class NoAmountsGiven < StandardError; end attr_reader :shipping_method, :amounts, :remote_service_id, :delivery_date, :warnings, :errors, :data # @param [FriendlyShipping::ShippingMethod] shipping_method The rate's shipping method # @param [Hash] amounts The amounts (as Money objects) that make up the rate # @param [Integer] remote_service_id The remote service ID for the rate # @param [Time] delivery_date The delivery date for the rate # @param [Array] warnings Any warnings that were generated # @param [Array] errors Any errors that were generated # @param [Hash] data Additional data related to the rate def initialize( shipping_method:, amounts:, remote_service_id: nil, delivery_date: nil, warnings: [], errors: [], data: {} ) @remote_service_id = remote_service_id @shipping_method = shipping_method @amounts = amounts @delivery_date = delivery_date @warnings = warnings @errors = errors @data = data end def total_amount raise NoAmountsGiven if amounts.empty? amounts.map { |_name, amount| amount }.sum(Money.new(0, 'USD')) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
friendly_shipping-0.8.1 | lib/friendly_shipping/rate.rb |
friendly_shipping-0.8.0 | lib/friendly_shipping/rate.rb |