Module: Binnable

Defined in:
lib/dragonfly_extensions/binnable.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



2
3
4
5
6
7
8
9
# File 'lib/dragonfly_extensions/binnable.rb', line 2

def self.included(base)
  base.has_many :bins, :as => :binnable
  base.has_many :warehouses,  :through => :bins
  
  base.named_scope :in_warehouse, lambda { |warehouse|
    {:joins => :warehouses, :conditions => [ "#{Warehouse.table_name}.id = ?", warehouse ] }
  }
end

Instance Method Details

#qty(warehouse = nil) ⇒ Object

Return the quantity of a binnable item. The default is in all warehouses



15
16
17
18
19
# File 'lib/dragonfly_extensions/binnable.rb', line 15

def qty(warehouse = nil)
  warehouse.nil? ? 
    self.bins.inject(0) { |sum, bin| sum += bin.qty } : 
    self.bins.in_warehouse(warehouse).inject(0) { |sum, bin| sum += bin.qty } 
end