Sha256: fe83450eebdc7fc54a7dd546a22172928abaa8347d86eaad96d1ff3bb279bdad

Contents?: true

Size: 745 Bytes

Versions: 60

Compression:

Stored size: 745 Bytes

Contents

module Spree
  module Stock
    module Splitter
      class Weight < Spree::Stock::Splitter::Base
        attr_reader :packer, :next_splitter

        cattr_accessor :threshold do
          150
        end

        def split(packages)
          packages.each do |package|
            removed_contents = reduce package
            packages << build_package(removed_contents) unless removed_contents.empty?
          end
          return_next packages
        end

        private
        def reduce(package)
          removed = []
          while package.weight > self.threshold
            break if package.contents.size == 1
            removed << package.contents.shift
          end
          removed
        end
      end
    end
  end
end

Version data entries

60 entries across 60 versions & 2 rubygems

Version Path
solidus_core-1.2.3 app/models/spree/stock/splitter/weight.rb
solidus_core-1.1.4 app/models/spree/stock/splitter/weight.rb
solidus_core-1.0.7 app/models/spree/stock/splitter/weight.rb
solidus_core-1.0.6 app/models/spree/stock/splitter/weight.rb
solidus_core-1.2.2 app/models/spree/stock/splitter/weight.rb
solidus_core-1.2.1 app/models/spree/stock/splitter/weight.rb
solidus_core-1.1.3 app/models/spree/stock/splitter/weight.rb
solidus_core-1.0.5 app/models/spree/stock/splitter/weight.rb
solidus_core-1.2.0 app/models/spree/stock/splitter/weight.rb
solidus_core-1.2.0.rc2 app/models/spree/stock/splitter/weight.rb
solidus_core-1.0.4 app/models/spree/stock/splitter/weight.rb
solidus_core-1.1.2 app/models/spree/stock/splitter/weight.rb
solidus_core-1.2.0.rc1 app/models/spree/stock/splitter/weight.rb
solidus_core-1.2.0.beta1 app/models/spree/stock/splitter/weight.rb
solidus_core-1.0.3 app/models/spree/stock/splitter/weight.rb
solidus_core-1.1.1 app/models/spree/stock/splitter/weight.rb
solidus_core-1.1.0 app/models/spree/stock/splitter/weight.rb
solidus_core-1.1.0.pre2 app/models/spree/stock/splitter/weight.rb
solidus_core-1.1.0.pre1 app/models/spree/stock/splitter/weight.rb
solidus_core-1.1.0.beta1 app/models/spree/stock/splitter/weight.rb