mongo-parser-rb 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -91,7 +91,12 @@ module MongoParserRB
|
|
91
91
|
# the specified field does not exist on a document.
|
92
92
|
return true if !value_for_field && !@field.in_document?(document)
|
93
93
|
|
94
|
-
value_for_field
|
94
|
+
if value_for_field.kind_of?(Array) &&
|
95
|
+
!@arguments.kind_of?(Array)
|
96
|
+
!value_for_field.include?(@arguments)
|
97
|
+
else
|
98
|
+
value_for_field != @arguments
|
99
|
+
end
|
95
100
|
when :$nin
|
96
101
|
if value_for_field.kind_of?(Array)
|
97
102
|
(value_for_field & @arguments).length.zero?
|
@@ -108,6 +113,9 @@ module MongoParserRB
|
|
108
113
|
when :$eq
|
109
114
|
if @arguments.kind_of?(Regexp)
|
110
115
|
!!(value_for_field =~ @arguments)
|
116
|
+
elsif value_for_field.kind_of?(Array) &&
|
117
|
+
!@arguments.kind_of?(Array)
|
118
|
+
value_for_field.include?(@arguments)
|
111
119
|
else
|
112
120
|
value_for_field == @arguments
|
113
121
|
end
|
@@ -175,4 +175,20 @@ class QueryTest < MiniTest::Unit::TestCase
|
|
175
175
|
refute query.matches_document?(:date_key => Time.new(1996,2,13,0,0,0))
|
176
176
|
end
|
177
177
|
|
178
|
+
def test_eq_as_in_substitute
|
179
|
+
query = MongoParserRB::Query.parse(:array_key => 1)
|
180
|
+
assert query.matches_document?(:array_key => [1,2])
|
181
|
+
|
182
|
+
query = MongoParserRB::Query.parse(:array_key => [1])
|
183
|
+
refute query.matches_document?(:array_key => [1,2])
|
184
|
+
end
|
185
|
+
|
186
|
+
def test_ne_as_nin_substitue
|
187
|
+
query = MongoParserRB::Query.parse(:array_key => {:$ne => 1})
|
188
|
+
assert query.matches_document?(:array_key => [2,3])
|
189
|
+
|
190
|
+
query = MongoParserRB::Query.parse(:array_key => {:$ne => [1]})
|
191
|
+
assert query.matches_document?(:array_key => [1,2])
|
192
|
+
end
|
193
|
+
|
178
194
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongo-parser-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-09-05 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Parse and evaluate mongo queries in Ruby
|
15
15
|
email:
|
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
54
|
version: '0'
|
55
55
|
requirements: []
|
56
56
|
rubyforge_project:
|
57
|
-
rubygems_version: 1.8.
|
57
|
+
rubygems_version: 1.8.23
|
58
58
|
signing_key:
|
59
59
|
specification_version: 3
|
60
60
|
summary: Parse and evaluate mongo queries in Ruby
|