class Centra::Rule::OrderData
Build order data
Attributes
centra_orders[R]
order_filter[R]
rule_orders[R]
Public Class Methods
new(centra_csv, rule_csv, order_filter)
click to toggle source
# File lib/centra/rule/order_data.rb, line 7 def initialize(centra_csv, rule_csv, order_filter) @order_filter = order_filter @email_orders = Hash.new do |hash, key| hash[key] = { centra: [], rule: [] } end @centra_orders = build_centra_orders!(centra_csv.rows) @rule_orders = build_rule_orders!(rule_csv.rows) end
Public Instance Methods
email_orders()
click to toggle source
@return [Hash] @example Return example
data.email_orders # => { "jane@example.com" => { centra: [#<Object:0x007f>], rule: [#<Object:0x009d>] } }
# File lib/centra/rule/order_data.rb, line 22 def email_orders @email_orders end
Private Instance Methods
build_centra_orders!(rows)
click to toggle source
# File lib/centra/rule/order_data.rb, line 28 def build_centra_orders!(rows) orders = [] rows.each do |row| order = Order.new(row) next unless order_filter.allow?(order) @email_orders[order.email][:centra] << order orders << order end orders end
build_rule_orders!(rows)
click to toggle source
# File lib/centra/rule/order_data.rb, line 40 def build_rule_orders!(rows) orders = [] rows.each do |row| order = Order.new(row) next unless order_filter.date_range_covered?(order) @email_orders[order.email][:rule] << order orders << order end orders end