Sha256: 2e1728c4090e311bfe73c9cb3c8356dcc36c71fdde004a6ead95f1e62bf82000

Contents?: true

Size: 852 Bytes

Versions: 26

Compression:

Stored size: 852 Bytes

Contents

class SaleSearch

  attr_reader :start, :stop
  attr_reader :organization, :event, :show

  def initialize(terms)
    @organization = terms[:organization]
    @event        = terms[:event]
    @show         = terms[:show]
    @start        = start_with(terms[:start])
    @stop         = stop_with(terms[:stop])

    @results = yield(results) if block_given?
  end

  def results
    @results ||= Order.sale_search(self).select(&:has_ticket?)
  end

  private

  def start_with(start)
    start.present? ? DateTime.parse(start) : default_start
  end

  def stop_with(stop)
    stop.present? ? Sundial.midnightish(@organization, stop) : default_stop
  end

  def default_start
    DateTime.now.in_time_zone(@organization.time_zone).beginning_of_month
  end

  def default_stop
    DateTime.now.in_time_zone(@organization.time_zone).end_of_day
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
artfully_ose-1.2.0.alpha.2 app/models/sale_search.rb
artfully_ose-1.2.0.alpha.1 app/models/sale_search.rb
artfully_ose-1.2.0.pre.27 app/models/sale_search.rb
artfully_ose-1.2.0.pre.26 app/models/sale_search.rb
artfully_ose-1.2.0.pre.24 app/models/sale_search.rb
artfully_ose-1.2.0.pre.23 app/models/sale_search.rb
artfully_ose-1.2.0.pre.21 app/models/sale_search.rb
artfully_ose-1.2.0.pre.20 app/models/sale_search.rb
artfully_ose-1.2.0.pre.19 app/models/sale_search.rb
artfully_ose-1.2.0.pre.18 app/models/sale_search.rb
artfully_ose-1.2.0.pre.17 app/models/sale_search.rb
artfully_ose-1.2.0.pre.16 app/models/sale_search.rb
artfully_ose-1.2.0.pre.15 app/models/sale_search.rb
artfully_ose-1.2.0.pre.12 app/models/sale_search.rb
artfully_ose-1.2.0.pre.11 app/models/sale_search.rb
artfully_ose-1.2.0.pre.10 app/models/sale_search.rb
artfully_ose-1.2.0.pre.9 app/models/sale_search.rb
artfully_ose-1.2.0.pre.8 app/models/sale_search.rb
artfully_ose-1.2.0.pre.7 app/models/sale_search.rb
artfully_ose-1.2.0.pre.6 app/models/sale_search.rb