Sha256: 4017af41dbcee2f2ae71ac4994311a4ca6d81c130e71ea9f396aceab5940d388

Contents?: true

Size: 774 Bytes

Versions: 28

Compression:

Stored size: 774 Bytes

Contents

class DonationSearch

  attr_reader :start, :stop

  def initialize(start, stop, organization)
    @organization = organization
    @start = start_with(start)
    @stop  = stop_with(stop)
    @results = yield(results) if block_given?
  end

  def results
    @results ||= Order.in_range(@start, @stop, @organization.id).select(&:has_donation?).sort_by(&:created_at)
  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

28 entries across 28 versions & 1 rubygems

Version Path
artfully_ose-1.2.0.pre.7 app/models/donation_search.rb
artfully_ose-1.2.0.pre.6 app/models/donation_search.rb
artfully_ose-1.2.0.pre.5 app/models/donation_search.rb
artfully_ose-1.2.0.pre.4 app/models/donation_search.rb
artfully_ose-1.2.0.pre.3 app/models/donation_search.rb
artfully_ose-1.2.0.pre.2 app/models/donation_search.rb
artfully_ose-1.2.0.pre.1 app/models/donation_search.rb
artfully_ose-1.2.0.pre app/models/donation_search.rb