Tell if a condition is negative
This commit is contained in:
parent
235eae3b82
commit
3df134e08e
|
@ -247,6 +247,10 @@ module Ransack
|
||||||
"Condition <#{data}>"
|
"Condition <#{data}>"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def negative?
|
||||||
|
predicate.negative?
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def valid_combinator?
|
def valid_combinator?
|
||||||
|
|
|
@ -74,5 +74,9 @@ module Ransack
|
||||||
vals.any? { |v| validator.call(type ? v.cast(type) : v.value) }
|
vals.any? { |v| validator.call(type ? v.cast(type) : v.value) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def negative?
|
||||||
|
@name.include?("not_".freeze)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -29,6 +29,15 @@ module Ransack
|
||||||
specify { expect(subject.values.size).to eq(2) }
|
specify { expect(subject.values.size).to eq(2) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#negative?' do
|
||||||
|
let(:context) { Context.for(Person) }
|
||||||
|
let(:eq) { Condition.extract(context, 'name_eq', 'A') }
|
||||||
|
let(:not_eq) { Condition.extract(context, 'name_not_eq', 'A') }
|
||||||
|
|
||||||
|
specify { expect(not_eq.negative?).to be true }
|
||||||
|
specify { expect(eq.negative?).to be false }
|
||||||
|
end
|
||||||
|
|
||||||
context 'with an invalid predicate' do
|
context 'with an invalid predicate' do
|
||||||
subject {
|
subject {
|
||||||
Condition.extract(
|
Condition.extract(
|
||||||
|
|
Loading…
Reference in New Issue