Sha256: 9436edf233bfd686fd8cc28a3a496aaf9aa74e6a8119aa260f3335100446906c
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
module ReportsKit module Reports module FilterTypes class Datetime < Base DEFAULT_CRITERIA = { operator: 'between' } SEPARATOR = ' - ' def apply_conditions(records) case criteria[:operator] when 'between' records.where("#{column} IS NOT NULL").where("#{column} BETWEEN ? AND ?", start_at, end_at) else raise ArgumentError.new("Unsupported operator: '#{criteria[:operator]}'") end end def start_at_end_at @start_at_end_at ||= begin return unless valid? start_string, end_string = value.split(SEPARATOR) start_at = ReportsKit::Reports::Data::Utils.parse_date_string(start_string) end_at = ReportsKit::Reports::Data::Utils.parse_date_string(end_string).end_of_day [start_at, end_at] end end def start_at start_at_end_at.try(:[], 0) end def end_at start_at_end_at.try(:[], 1) end def valid? value.present? end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reports_kit-0.2.0 | lib/reports_kit/reports/filter_types/datetime.rb |