From 759ea63a8e344e637dbfbfd188982ca1e1224ddc Mon Sep 17 00:00:00 2001 From: Chris Salzberg Date: Fri, 11 May 2018 13:16:07 +0900 Subject: [PATCH] Refactor inject --- lib/ransack/adapters/active_record/3.0/compat.rb | 8 +------- .../adapters/mongoid/ransack/nodes/condition.rb | 11 +++-------- lib/ransack/adapters/mongoid/ransack/visitor.rb | 8 +------- lib/ransack/visitor.rb | 8 +------- 4 files changed, 6 insertions(+), 29 deletions(-) diff --git a/lib/ransack/adapters/active_record/3.0/compat.rb b/lib/ransack/adapters/active_record/3.0/compat.rb index acbe210..4f86c8c 100644 --- a/lib/ransack/adapters/active_record/3.0/compat.rb +++ b/lib/ransack/adapters/active_record/3.0/compat.rb @@ -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 diff --git a/lib/ransack/adapters/mongoid/ransack/nodes/condition.rb b/lib/ransack/adapters/mongoid/ransack/nodes/condition.rb index eb74a37..6e51016 100644 --- a/lib/ransack/adapters/mongoid/ransack/nodes/condition.rb +++ b/lib/ransack/adapters/mongoid/ransack/nodes/condition.rb @@ -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 diff --git a/lib/ransack/adapters/mongoid/ransack/visitor.rb b/lib/ransack/adapters/mongoid/ransack/visitor.rb index 74e523f..a6a507c 100644 --- a/lib/ransack/adapters/mongoid/ransack/visitor.rb +++ b/lib/ransack/adapters/mongoid/ransack/visitor.rb @@ -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) diff --git a/lib/ransack/visitor.rb b/lib/ransack/visitor.rb index f066049..c7b10bf 100644 --- a/lib/ransack/visitor.rb +++ b/lib/ransack/visitor.rb @@ -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)