dkubb (owner)

Revisions

gist: 188227 Download_button fork
public
Public Clone URL: git://gist.github.com/188227.git
Embed All Files: show embed
Diff #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
diff --git a/lib/dm-core/adapters/data_objects_adapter.rb b/lib/dm-core/adapters/data_objects_adapter.rb
index ed5bd99..8bd90ef 100644
--- a/lib/dm-core/adapters/data_objects_adapter.rb
+++ b/lib/dm-core/adapters/data_objects_adapter.rb
@@ -536,9 +536,13 @@ module DataMapper
           bind_values = []
 
           operation.each do |operand|
+ operands = operand.operands if operand.respond_to?(:operands)
+
+ next if operands && operands.empty?
+
             statement, values = conditions_statement(operand, qualify)
 
- if operand.respond_to?(:operands) && operand.operands.size > 1
+ if operands && operands.size > 1
               statement = "(#{statement})"
             end
 
@@ -546,10 +550,8 @@ module DataMapper
             bind_values.concat(values)
           end
 
- unless operand.respond_to?(:operands) and operand.operands.size == 0
- join_with = operation.kind_of?(@negated ? Query::Conditions::OrOperation : Query::Conditions::AndOperation) ? 'AND' : 'OR'
- statement = statements.join(" #{join_with} ")
- end
+ join_with = operation.kind_of?(@negated ? Query::Conditions::OrOperation : Query::Conditions::AndOperation) ? 'AND' : 'OR'
+ statement = statements.join(" #{join_with} ")
 
           return statement, bind_values
         end