Sha256: 68f485f84ed54c8478fe4cca3f663f459a21343183f4d89c527000380c66eadf
Contents?: true
Size: 705 Bytes
Versions: 11
Compression:
Stored size: 705 Bytes
Contents
module Spree module Stock class SplitterChain attr_reader :stock_location def initialize(stock_location, splitter_classes = []) @stock_location = stock_location @splitter_classes = splitter_classes end def split(initial_packages) initial_packages = Array(initial_packages) if @splitter_classes.empty? initial_packages else build_splitter.split(initial_packages) end end private def build_splitter splitter = nil @splitter_classes.reverse_each do |klass| splitter = klass.new(stock_location, splitter) end splitter end end end end
Version data entries
11 entries across 11 versions & 1 rubygems