23 lines
499 B
Ruby
23 lines
499 B
Ruby
class Timeframe
|
|
LATEST_TIMEFRAME = "latest".freeze
|
|
FILTER_TIMEFRAMES = %w[infinity year month week].freeze
|
|
|
|
def self.datetime(timeframe)
|
|
datetimes[timeframe]
|
|
end
|
|
|
|
def self.datetime_iso8601(timeframe)
|
|
datetime(timeframe)&.iso8601
|
|
end
|
|
|
|
def self.datetimes
|
|
{
|
|
infinity: 5.years.ago,
|
|
year: 1.year.ago,
|
|
month: 1.month.ago,
|
|
week: 1.week.ago,
|
|
LATEST_TIMEFRAME: LATEST_TIMEFRAME
|
|
}.with_indifferent_access
|
|
end
|
|
private_class_method :datetimes
|
|
end
|