diff --git a/lib/datagrid/drivers/abstract_driver.rb b/lib/datagrid/drivers/abstract_driver.rb index b663558..5b92409 100644 --- a/lib/datagrid/drivers/abstract_driver.rb +++ b/lib/datagrid/drivers/abstract_driver.rb @@ -63,7 +63,7 @@ def reverse_order(scope) raise NotImplementedError end - def is_timestamp?(scope, field) + def timestamp_column?(scope, field) normalized_column_type(scope, field) == :timestamp end diff --git a/lib/datagrid/drivers/mongo_mapper.rb b/lib/datagrid/drivers/mongo_mapper.rb index 48871ac..b0a7738 100644 --- a/lib/datagrid/drivers/mongo_mapper.rb +++ b/lib/datagrid/drivers/mongo_mapper.rb @@ -46,7 +46,7 @@ def scope_has_column?(scope, column_name) scope.key?(column_name) end - def is_timestamp?(_scope, _column_name) + def timestamp_column?(_scope, _column_name) # TODO: implement the support false end diff --git a/lib/datagrid/filters/date_filter.rb b/lib/datagrid/filters/date_filter.rb index 9793698..c219276 100644 --- a/lib/datagrid/filters/date_filter.rb +++ b/lib/datagrid/filters/date_filter.rb @@ -29,7 +29,7 @@ def format(value) end def default_filter_where(scope, value) - value = Datagrid::Utils.format_date_as_timestamp(value) if driver.is_timestamp?(scope, name) + value = Datagrid::Utils.format_date_as_timestamp(value) if driver.timestamp_column?(scope, name) super end diff --git a/lib/datagrid/filters/dynamic_filter.rb b/lib/datagrid/filters/dynamic_filter.rb index 9926ff0..967a37d 100644 --- a/lib/datagrid/filters/dynamic_filter.rb +++ b/lib/datagrid/filters/dynamic_filter.rb @@ -42,7 +42,7 @@ def default_filter_where(scope, filter) field = filter.field operation = filter.operation value = filter.value - date_conversion = value.is_a?(Date) && driver.is_timestamp?(scope, field) + date_conversion = value.is_a?(Date) && driver.timestamp_column?(scope, field) return scope if field.blank? || operation.blank? diff --git a/lib/datagrid/utils.rb b/lib/datagrid/utils.rb index f97707d..f0c5d26 100644 --- a/lib/datagrid/utils.rb +++ b/lib/datagrid/utils.rb @@ -107,6 +107,7 @@ def parse_datetime(value) Array(Datagrid.configuration.datetime_formats).each do |format| return Time.strptime(value, format) rescue ::ArgumentError + nil end end return Time.parse(value) if value.is_a?(String) diff --git a/spec/datagrid/filters_spec.rb b/spec/datagrid/filters_spec.rb index 457c75f..67aa8db 100644 --- a/spec/datagrid/filters_spec.rb +++ b/spec/datagrid/filters_spec.rb @@ -298,16 +298,16 @@ class TestGrid8728 < Datagrid::Base end context "with delegation to attribute" do - let(:role) { Struct.new(:admin?).new(admin) } + let(:role) { Struct.new(:admin).new(admin) } let(:klass) do test_report_class do attr_accessor :role - delegate :admin?, to: :role + delegate :admin, to: :role scope { Entry } - filter(:id, :integer, if: :admin?) + filter(:id, :integer, if: :admin) end end