Sha256: bc15ad6852992cde6e8c8762f28736a9f00f9ee03eee82c44e2f55bba4b5c2e6

Contents?: true

Size: 791 Bytes

Versions: 22

Compression:

Stored size: 791 Bytes

Contents

require "datagrid/filters/ranged_filter"

class Datagrid::Filters::DateFilter < Datagrid::Filters::BaseFilter

  include Datagrid::Filters::RangedFilter

  def apply(grid_object, scope, value)
    if value.is_a?(Range)
      value = value.first.beginning_of_day..value.last.end_of_day
    end
    super(grid_object, scope, value)
  end

  def parse(value)
    Datagrid::Utils.parse_date(value)
  end


  def format(value)
    if formats.any? && value
      value.strftime(formats.first)
    else
      super
    end
  end

  def default_filter_where(scope, value)
    if driver.is_timestamp?(scope, name)
      value = Datagrid::Utils.format_date_as_timestamp(value)
    end
    super(scope, value)
  end

  protected

  def formats
    Array(Datagrid.configuration.date_formats)
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
datagrid-1.8.1 lib/datagrid/filters/date_filter.rb
datagrid-1.8.0 lib/datagrid/filters/date_filter.rb
datagrid-1.7.0 lib/datagrid/filters/date_filter.rb
datagrid-1.6.3 lib/datagrid/filters/date_filter.rb
datagrid-1.6.2 lib/datagrid/filters/date_filter.rb
datagrid-1.6.1 lib/datagrid/filters/date_filter.rb
datagrid-1.6.0 lib/datagrid/filters/date_filter.rb
datagrid-1.5.9 lib/datagrid/filters/date_filter.rb
datagrid-1.5.8 lib/datagrid/filters/date_filter.rb
datagrid-1.5.7 lib/datagrid/filters/date_filter.rb
datagrid-1.5.6 lib/datagrid/filters/date_filter.rb
datagrid-1.5.5 lib/datagrid/filters/date_filter.rb
datagrid-1.5.4 lib/datagrid/filters/date_filter.rb
datagrid-1.5.3 lib/datagrid/filters/date_filter.rb
datagrid-1.5.2 lib/datagrid/filters/date_filter.rb
datagrid-1.5.1 lib/datagrid/filters/date_filter.rb
datagrid-1.5.0 lib/datagrid/filters/date_filter.rb
datagrid-1.4.4 lib/datagrid/filters/date_filter.rb
datagrid-1.4.3 lib/datagrid/filters/date_filter.rb
datagrid-1.4.2 lib/datagrid/filters/date_filter.rb