diff --git a/lib/datagrid/drivers/array.rb b/lib/datagrid/drivers/array.rb index f4672d7..26f3bbf 100644 --- a/lib/datagrid/drivers/array.rb +++ b/lib/datagrid/drivers/array.rb @@ -39,15 +39,13 @@ def reverse_order(scope) def greater_equal(scope, field, value) scope.select do |object| - compare_value = object.public_send(field) - compare_value.respond_to?(:>=) && compare_value >= value + object.public_send(field) >= value end end def less_equal(scope, field, value) scope.select do |object| - compare_value = object.public_send(field) - compare_value.respond_to?(:<=) && compare_value <= value + object.public_send(field) <= value end end diff --git a/lib/datagrid/filters/base_filter.rb b/lib/datagrid/filters/base_filter.rb index fcbd746..db468d7 100644 --- a/lib/datagrid/filters/base_filter.rb +++ b/lib/datagrid/filters/base_filter.rb @@ -68,7 +68,7 @@ def header def default(object) default = self.options[:default] if default.is_a?(Symbol) - object.public_send(default) + object.send(default) elsif default.respond_to?(:call) Datagrid::Utils.apply_args(object, &default) else @@ -173,7 +173,7 @@ def driver def default_filter(value, scope, grid) return nil if dummy? - if !driver.has_column?(scope, name) && scope.respond_to?(name) + if !driver.has_column?(scope, name) && scope.respond_to?(name, true) scope.public_send(name, value) else default_filter_where(scope, value) diff --git a/spec/datagrid/core_spec.rb b/spec/datagrid/core_spec.rb index d943b16..b78cd6f 100644 --- a/spec/datagrid/core_spec.rb +++ b/spec/datagrid/core_spec.rb @@ -101,11 +101,11 @@ class TestGrid < ScopeTestReport class InspectTest include Datagrid scope {Entry} - filter(:created_at, :date, :range => true) + filter(:created_at, :date, range: true) column(:name) end - grid = InspectTest.new(:created_at => ['2014-01-01', '2014-08-05'], :descending => true, :order => 'name') + grid = InspectTest.new(created_at: ['2014-01-01', '2014-08-05'], descending: true, order: 'name') expect(grid.inspect).to eq('#') end end @@ -154,7 +154,7 @@ class EqualTest end it "has access to attributes" do - grid = test_report(:attribute_name => 'value') do + grid = test_report(attribute_name: 'value') do scope {Entry} datagrid_attribute :attribute_name dynamic do