Sha256: 825166e126aa876c10a3901a170bbac410efa7cad706e5124a792564f28f8c23

Contents?: true

Size: 743 Bytes

Versions: 3

Compression:

Stored size: 743 Bytes

Contents

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
comable-core-0.7.1 app/models/comable/inventory/adjuster.rb
comable-core-0.7.0 app/models/comable/inventory/adjuster.rb
comable-core-0.7.0.beta2 app/models/comable/inventory/adjuster.rb