class Date include ErrorHelper def self.build_date_array(start_date, end_date) start_date = start_date.to_date end_date = end_date.to_date raise_start_date_before_end_date if (start_date > end_date) date_array = [] processable_date = start_date.dup while processable_date <= end_date date_array << processable_date processable_date = processable_date.tomorrow end date_array end def self.range(start, _end) start.to_date.beginning_of_day.._end.to_date.end_of_day end def build_date_array(date) date = date.to_date if self < date start_date = self end_date = date else start_date = date end_date = self end return Date.build_date_array(start_date, end_date) end def array_with_pre_churn_limit(count_of_additional_days) explicit_limit_date = (self + count_of_additional_days.days) now = Time.zone.now.to_date cutoff_date = (explicit_limit_date > now ? now.yesterday : explicit_limit_date) return Date.build_date_array(self, cutoff_date) end end