Sha256: 5ffb88135929f15c6ea8e54afe6be7c992b6f0d37d3e097962300e5a24119eea
Contents?: true
Size: 921 Bytes
Versions: 2
Compression:
Stored size: 921 Bytes
Contents
# frozen_string_literal: true module FriendlyShipping module Services class UpsJson class ParseRateModifierHash # @param [Hash] hash the RateModifier hash from the source JSON # @param [String] currency_code The currency code for this modifier's amount (i.e. 'USD') # @return [Array] The label and the amount of the rate modifier def self.call(rate_modifier, currency_code:) return unless rate_modifier amount = rate_modifier['Amount'].to_d return if amount.zero? currency = Money::Currency.new(currency_code) amount = Money.new(amount * currency.subunit_to_unit, currency) modifier_type = rate_modifier['ModifierType'] modifier_description = rate_modifier['ModifierDesc'] label = "#{modifier_type} (#{modifier_description})" [label, amount] end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
friendly_shipping-0.10.1 | lib/friendly_shipping/services/ups_json/parse_rate_modifier_hash.rb |
friendly_shipping-0.10.0 | lib/friendly_shipping/services/ups_json/parse_rate_modifier_hash.rb |