Skip to content

Commit bbf1f15

Browse files
committed
Refactor except_predicates_and_binds to avoid tap
1 parent 22ca710 commit bbf1f15

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

activerecord/lib/active_record/relation/where_clause.rb

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -134,20 +134,23 @@ def except_predicates_and_binds(columns)
134134
binds_index = 0
135135

136136
predicates = self.predicates.reject do |node|
137-
case node
138-
when Arel::Nodes::Between, Arel::Nodes::In, Arel::Nodes::NotIn, Arel::Nodes::Equality, Arel::Nodes::NotEqual, Arel::Nodes::LessThan, Arel::Nodes::LessThanOrEqual, Arel::Nodes::GreaterThan, Arel::Nodes::GreaterThanOrEqual
139-
binds_contains = node.grep(Arel::Nodes::BindParam).size
140-
subrelation = (node.left.kind_of?(Arel::Attributes::Attribute) ? node.left : node.right)
141-
columns.include?(subrelation.name.to_s)
142-
end.tap do |except|
143-
if except && binds_contains > 0
144-
(binds_index...(binds_index + binds_contains)).each do |i|
145-
except_binds[i] = true
146-
end
147-
148-
binds_index += binds_contains
137+
except = \
138+
case node
139+
when Arel::Nodes::Between, Arel::Nodes::In, Arel::Nodes::NotIn, Arel::Nodes::Equality, Arel::Nodes::NotEqual, Arel::Nodes::LessThan, Arel::Nodes::LessThanOrEqual, Arel::Nodes::GreaterThan, Arel::Nodes::GreaterThanOrEqual
140+
binds_contains = node.grep(Arel::Nodes::BindParam).size
141+
subrelation = (node.left.kind_of?(Arel::Attributes::Attribute) ? node.left : node.right)
142+
columns.include?(subrelation.name.to_s)
149143
end
144+
145+
if except && binds_contains > 0
146+
(binds_index...(binds_index + binds_contains)).each do |i|
147+
except_binds[i] = true
148+
end
149+
150+
binds_index += binds_contains
150151
end
152+
153+
except
151154
end
152155

153156
binds = self.binds.reject.with_index do |_, i|

0 commit comments

Comments
 (0)