core/app/models/comable/inventory/adjuster.rb
module Comable
module Inventory
class Adjuster
attr_accessor :packages
attr_accessor :units
def initialize(packages, units)
@packages = packages.map(&:clone)
@units = units
end
def adjusted_packages
remove_duplicated_items
packages
end
private
def remove_duplicated_items
units.each do |unit|
remove_duplicated(unit)
end
end
def remove_duplicated(unit)
duplicated = false
packages.each do |package|
next unless package.find(unit)
if duplicated
package.remove(unit)
else
duplicated = true
end
end
end
end
end
end