class OrderOptimizer::Order
Attributes
quantity[R]
skus[R]
total[R]
Public Class Methods
new(required_qty:)
click to toggle source
# File lib/order_optimizer/order.rb, line 5 def initialize(required_qty:) @quantity = 0 @required_qty = required_qty @total = 0 @skus = {} end
Public Instance Methods
add(sku, count: 1)
click to toggle source
# File lib/order_optimizer/order.rb, line 12 def add(sku, count: 1) @quantity += count * sku.quantity @total += count * sku.price_per_sku @skus = skus.merge(sku.id => count) { |_identifier, current, plus| current + plus } self end
complete?()
click to toggle source
# File lib/order_optimizer/order.rb, line 23 def complete? missing_qty.zero? end
exact?()
click to toggle source
# File lib/order_optimizer/order.rb, line 27 def exact? @required_qty == quantity end
missing_qty()
click to toggle source
# File lib/order_optimizer/order.rb, line 19 def missing_qty [@required_qty - quantity, 0].max end