Sha256: 03c24a8a6d40ff907b49dd2124ce72c07c140ffa4aae7d34761c76aa4b20640b

Contents?: true

Size: 721 Bytes

Versions: 43

Compression:

Stored size: 721 Bytes

Contents

module Spree
  module Stock
    module Splitter
      class Weight < 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

43 entries across 43 versions & 1 rubygems

Version Path
spree_core-2.2.14 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.13 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.12 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.11 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.10 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.9 app/models/spree/stock/splitter/weight.rb
spree_core-2.1.12 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.8 app/models/spree/stock/splitter/weight.rb
spree_core-2.1.11 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.7 app/models/spree/stock/splitter/weight.rb
spree_core-2.1.10 app/models/spree/stock/splitter/weight.rb
spree_core-2.0.13 app/models/spree/stock/splitter/weight.rb
spree_core-2.1.9 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.6 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.5 app/models/spree/stock/splitter/weight.rb
spree_core-2.1.8 app/models/spree/stock/splitter/weight.rb
spree_core-2.0.12 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.4 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.3 app/models/spree/stock/splitter/weight.rb
spree_core-2.2.2 app/models/spree/stock/splitter/weight.rb