Sha256: 334e10876f668b67f66027247d67bbf153bac273b9bd6f9e48d3bcb536fecba0

Contents?: true

Size: 720 Bytes

Versions: 4

Compression:

Stored size: 720 Bytes

Contents

module ReportsKit
  module Reports
    module FilterTypes
      class Datetime < Base
        DEFAULT_CRITERIA = {
          operator: 'between'
        }

        def apply_conditions(records)
          case criteria[:operator]
          when 'between'
            start_string, end_string = value.split(' - ')
            start_at = Date.parse(start_string)
            end_at = Date.parse(end_string)
            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 valid?
          value.present?
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
reports_kit-0.0.4 lib/reports_kit/reports/filter_types/datetime.rb
reports_kit-0.0.3 lib/reports_kit/reports/filter_types/datetime.rb
reports_kit-0.0.2 lib/reports_kit/reports/filter_types/datetime.rb
reports_kit-0.0.1 lib/reports_kit/reports/filter_types/datetime.rb