Sha256: 5c9be4c528323d52dc10c8d25421d61124696332c2fb8c5156f2b3aa76329634

Contents?: true

Size: 854 Bytes

Versions: 2

Compression:

Stored size: 854 Bytes

Contents

module Stockman
  module Logic
    class Variant
      class StockLevelsCollection
        include Enumerable

        attr_reader :variant_id

        def initialize(variant_id)
          @variant_id = variant_id.to_i
        end

        def stock_levels
          @stock_levels ||= Storage.obtain_set("variants:#{variant_id}:warehouses").map do |warehouse_id|
            StockLevel.new(variant_id, warehouse_id)
          end
        end

        def each
          stock_levels.each{ |stock_level| yield stock_level }
        end

        def empty?
          stock_levels.empty?
        end

        def [](warehouse_id)
          find_by_warehouse(warehouse_id)
        end

        def find_by_warehouse(warehouse_id)
          stock_levels.detect{ |stock_level| stock_level.warehouse_id == warehouse_id }
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
stockman-logic-0.1.1 lib/stockman/logic/variant/stock_levels_collection.rb
stockman-logic-0.1.0 lib/stockman/logic/variant/stock_levels_collection.rb