mongo_inspired_compare 0.0.4 → 0.0.5

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mongo_inspired_compare.rb +11 -6
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 246b1a23ad1ffa7cb2cd56a2d197cd8b2efd744c
4
- data.tar.gz: 7549dd194bcc20de9559ac758525efd8c4b9b779
3
+ metadata.gz: b6b471b0a2c15d56897240fa60cdd8b3101f97d5
4
+ data.tar.gz: 407f0e832f19de7e0c5a7dea4dc0f7176ff77cba
5
5
  SHA512:
6
- metadata.gz: 28f5f64ceb3b97a5fc27412891c388a4d593b009f6d9c8878ed3f597ddaa89e05714bc19a8476c8e0639bcec41b40ab3b286ac9d70ab04dc54f9e45cfd7ff3f3
7
- data.tar.gz: e9a8495675614a4e9292d5966e3ce673ce55d19bce2d871647bcd0bc751460c83187db23042d9a78d756758133eed5e638293f2ac40814676d03c14a325724d8
6
+ metadata.gz: 30d8a2b7a66342e387f9c58a5d9385ff0a0e66343a812296dfaff4da85fabf6f4aabedcae591480e64a57dcba32a25b507dbaa29fbe934051071c0f9d083c475
7
+ data.tar.gz: dd609ec1cc7df4c23c4dcef971cab7e23a790fd09aa5ce90644a3bbf32e996358b539af26ccd9304611efd3bbdf58e8ab733fcdef2a0e6ec2fbb5a4c20272a0e
@@ -46,7 +46,8 @@ class MongoInspiredCompare
46
46
  # > MongoInspiredCompare.compare( "5x", {"$gte"=>5} )
47
47
  # => false
48
48
 
49
- def self.compare( val, criterion )
49
+ def self.compare( val, criterion )
50
+
50
51
  if criterion.class != Hash
51
52
  val == criterion
52
53
  else
@@ -62,10 +63,6 @@ class MongoInspiredCompare
62
63
  v2.any? {|v3| compare( val, v3)}
63
64
  elsif oper == "$nin" # "$in" => [">4000", {"$gt" => -100 }]
64
65
  !v2.any? {|v3| compare( val, v3)}
65
- elsif oper == "$or"
66
- v2.any? {|v3| compare( val, v3)}
67
- elsif oper == "$and"
68
- v2.all? {|v3| compare( val, v3)}
69
66
  elsif num_val == nil
70
67
  false
71
68
  elsif oper == "$gte"
@@ -85,7 +82,15 @@ class MongoInspiredCompare
85
82
 
86
83
 
87
84
  def self.compare_object( obj, filter )
88
- filter.all? {|k,v| MongoInspiredCompare.compare( obj[k], v)}
85
+ filter.all? do |k,v|
86
+ if k == "$and"
87
+ v.all? {|e| compare_object(obj, e)}
88
+ elsif k == "$or"
89
+ v.any? {|e| compare_object(obj, e)}
90
+ else
91
+ compare( obj[k], v)
92
+ end
93
+ end
89
94
  end
90
95
 
91
96
  private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_inspired_compare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Do