Class: Centra::OrderFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/centra/order_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(countries: [], date_range: nil) ⇒ OrderFilter



3
4
5
6
# File 'lib/centra/order_filter.rb', line 3

def initialize(countries: [], date_range: nil)
  @date_range = date_range
  @countries = countries
end

Instance Method Details

#allow?(order) ⇒ Boolean



8
9
10
11
12
13
# File 'lib/centra/order_filter.rb', line 8

def allow?(order)
  return false unless date_range_covered?(order)
  return false unless included_country?(order)

  true
end

#date_range_covered?(order) ⇒ Boolean



15
16
17
18
19
# File 'lib/centra/order_filter.rb', line 15

def date_range_covered?(order)
  return true unless @date_range

  @date_range.cover?(order.order_date)
end

#included_country?(order) ⇒ Boolean



21
22
23
24
25
# File 'lib/centra/order_filter.rb', line 21

def included_country?(order)
  return true if @countries.empty?

  @countries.include?(order.delivery_country)
end