Sha256: 74b73380eab99800decad67521633e144b6b7cbf4511a42688178a936e08ccb1
Contents?: true
Size: 869 Bytes
Versions: 5
Compression:
Stored size: 869 Bytes
Contents
class MembershipSaleSearch attr_reader :start, :stop attr_reader :organization, :membership_type def initialize(terms) @organization = terms[:organization] @membership_type = terms[:membership_type] @start = start_with(terms[:start]) @stop = stop_with(terms[:stop]) @results = yield(results) if block_given? end def results @results ||= Order.membership_sale_search(self).select(&:has_membership?) 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
5 entries across 5 versions & 1 rubygems