Refactor inject

This commit is contained in:
Chris Salzberg 2018-05-11 13:16:07 +09:00
parent 21aa9d7928
commit 759ea63a8e
No known key found for this signature in database
GPG Key ID: C0C7B09832CB1CB1
4 changed files with 6 additions and 29 deletions

View File

@ -3,13 +3,7 @@ if Arel::Nodes::And < Arel::Nodes::Binary
class Ransack::Visitor
def visit_Ransack_Nodes_And(object)
nodes = object.values.map { |o| accept(o) }.compact
return nil unless nodes.size > 0
if nodes.size > 1
nodes.inject(&:and)
else
nodes.first
end
nodes.inject(&:and)
end
end
end

View File

@ -10,15 +10,10 @@ module Ransack
)
end
if predicates.size > 1
case combinator
when 'and'
Arel::Nodes::Grouping.new(Arel::Nodes::And.new(predicates))
when 'or'
predicates.inject(&:or)
end
if predicates.size > 1 && combinator == 'and'
Arel::Nodes::Grouping.new(Arel::Nodes::And.new(predicates))
else
predicates.first
predicates.inject(&:or)
end
end

View File

@ -2,13 +2,7 @@ module Ransack
class Visitor
def visit_and(object)
nodes = object.values.map { |o| accept(o) }.compact
return nil unless nodes.size > 0
if nodes.size > 1
nodes.inject(&:and)
else
nodes.first
end
nodes.inject(&:and)
end
def quoted?(object)

View File

@ -31,13 +31,7 @@ module Ransack
def visit_or(object)
nodes = object.values.map { |o| accept(o) }.compact
return nil unless nodes.size > 0
if nodes.size > 1
nodes.inject(&:or)
else
nodes.first
end
nodes.inject(&:or)
end
def quoted?(object)