Sha256: 69081545bce33861f6efbc6e2e0bf7341c2021966ae522be146906dc4d255bb2
Contents?: true
Size: 879 Bytes
Versions: 123
Compression:
Stored size: 879 Bytes
Contents
# frozen_string_literal: true module Spree module Stock module Splitter class ShippingCategory < Spree::Stock::Splitter::Base def split(packages) split_packages = [] packages.each do |package| split_packages += split_by_category(package) end return_next split_packages end private def split_by_category(package) categories = Hash.new { |hash, key| hash[key] = [] } package.contents.each do |item| categories[item.variant.shipping_category_id] << item end hash_to_packages(categories) end def hash_to_packages(categories) packages = [] categories.each do |_id, contents| packages << build_package(contents) end packages end end end end end
Version data entries
123 entries across 123 versions & 2 rubygems