lib/active_shipping/package.rb in active_shipping-1.8.6 vs lib/active_shipping/package.rb in active_shipping-1.9.0

- old
+ new

@@ -1,80 +1,6 @@ module ActiveShipping #:nodoc: - # A package item is a unique item(s) that is physically in a package. - # A single package can have many items. This is only required - # for shipping methods (label creation) right now. - class PackageItem - include Quantified - - attr_reader :sku, :hs_code, :value, :name, :weight, :quantity, :options - - def initialize(name, grams_or_ounces, value, quantity, options = {}) - @name = name - - imperial = (options[:units] == :imperial) || - (grams_or_ounces.respond_to?(:unit) && m.unit.to_sym == :imperial) - - @unit_system = imperial ? :imperial : :metric - - @weight = attribute_from_metric_or_imperial(grams_or_ounces, Mass, :grams, :ounces) - - @value = Package.cents_from(value) - @quantity = quantity > 0 ? quantity : 1 - - @sku = options[:sku] - @hs_code = options[:hs_code] - @options = options - end - - def weight(options = {}) - case options[:type] - when nil, :actual - @weight - when :volumetric, :dimensional - @volumetric_weight ||= begin - m = Mass.new((centimetres(:box_volume) / 6.0), :grams) - @unit_system == :imperial ? m.in_ounces : m - end - when :billable - [weight, weight(:type => :volumetric)].max - end - end - alias_method :mass, :weight - - def ounces(options = {}) - weight(options).in_ounces.amount - end - alias_method :oz, :ounces - - def grams(options = {}) - weight(options).in_grams.amount - end - alias_method :g, :grams - - def pounds(options = {}) - weight(options).in_pounds.amount - end - alias_method :lb, :pounds - alias_method :lbs, :pounds - - def kilograms(options = {}) - weight(options).in_kilograms.amount - end - alias_method :kg, :kilograms - alias_method :kgs, :kilograms - - private - - def attribute_from_metric_or_imperial(obj, klass, metric_unit, imperial_unit) - if obj.is_a?(klass) - return value - else - return klass.new(obj, (@unit_system == :imperial ? imperial_unit : metric_unit)) - end - end - end - class Package include Quantified cattr_accessor :default_options attr_reader :options, :value, :currency @@ -134,10 +60,12 @@ def cylinder? @cylinder end alias_method :tube?, :cylinder? - def gift?; @gift end + def gift? + @gift + end def ounces(options = {}) weight(options).in_ounces.amount end alias_method :oz, :ounces