plucky 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,17 +2,13 @@
2
2
  require 'set'
3
3
  require 'mongo'
4
4
  require 'plucky/extensions'
5
+ require 'plucky/criteria_hash'
6
+ require 'plucky/options_hash'
7
+ require 'plucky/query'
8
+ require 'plucky/pagination'
5
9
 
6
10
  module Plucky
7
- autoload :CriteriaHash, 'plucky/criteria_hash'
8
- autoload :OptionsHash, 'plucky/options_hash'
9
- autoload :Query, 'plucky/query'
10
- autoload :Version, 'plucky/version'
11
-
12
- module Pagination
13
- autoload :Decorator, 'plucky/pagination/decorator'
14
- autoload :Paginator, 'plucky/pagination/paginator'
15
- end
11
+ autoload :Version, 'plucky/version'
16
12
 
17
13
  # Array of methods that actually perform queries
18
14
  Methods = [
@@ -120,7 +120,7 @@ module Plucky
120
120
  case value
121
121
  when Array, Set
122
122
  value.map! { |v| Plucky.to_object_id(v) } if object_id?(parent_key)
123
- parent_key == key && key != :$or ? {'$in' => value.to_a} : value.to_a
123
+ parent_key == key && ![:$or, :$and].include?(key) ? {'$in' => value.to_a} : value.to_a
124
124
  when Time
125
125
  value.utc
126
126
  when String
@@ -75,7 +75,7 @@ class SymbolOperator
75
75
  end
76
76
 
77
77
  def ==(other)
78
- field == other.field && operator == other.operator
78
+ other.class == self.class && field == other.field && operator == other.operator
79
79
  end
80
80
  end
81
81
 
@@ -0,0 +1,6 @@
1
+ require 'plucky/pagination/decorator'
2
+ require 'plucky/pagination/paginator'
3
+
4
+ module Plucky
5
+ module Pagination; end
6
+ end
@@ -1,5 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module Plucky
3
- Version = '0.4.1'
4
- MongoVersion = '~> 1.3.1'
3
+ Version = '0.4.2'
5
4
  end
@@ -150,10 +150,14 @@ class CriteriaHashTest < Test::Unit::TestCase
150
150
  CriteriaHash.new(:numbers => {'$all' => [1,2,3]})[:numbers].should == {'$all' => [1,2,3]}
151
151
  CriteriaHash.new(:numbers => {'$any' => [1,2,3]})[:numbers].should == {'$any' => [1,2,3]}
152
152
  end
153
-
153
+
154
154
  should "not turn value to $in with $or key" do
155
155
  CriteriaHash.new(:$or => [{:numbers => 1}, {:numbers => 2}] )[:$or].should == [{:numbers=>1}, {:numbers=>2}]
156
156
  end
157
+
158
+ should "not turn value to $in with $and key" do
159
+ CriteriaHash.new(:$and => [{:numbers => 1}, {:numbers => 2}] )[:$and].should == [{:numbers=>1}, {:numbers=>2}]
160
+ end
157
161
  end
158
162
 
159
163
  context "with set value" do
@@ -257,7 +261,7 @@ class CriteriaHashTest < Test::Unit::TestCase
257
261
  c2 = CriteriaHash.new(:foo => {'$all' => [1, 4, 5]})
258
262
  c1.merge(c2).should == CriteriaHash.new(:foo => {'$in' => [1, 2, 3], '$all' => [1, 4, 5]})
259
263
  end
260
-
264
+
261
265
  should "not update mergee" do
262
266
  c1 = CriteriaHash.new(:foo => 'bar')
263
267
  c2 = CriteriaHash.new(:foo => 'baz')
@@ -17,18 +17,24 @@ class SymbolOperatorTest < Test::Unit::TestCase
17
17
  should "be true if field and operator are equal" do
18
18
  SymbolOperator.new(:foo, 'in').should == SymbolOperator.new(:foo, 'in')
19
19
  end
20
-
20
+
21
21
  should "be false if fields are equal but operators are not" do
22
22
  SymbolOperator.new(:foo, 'in').should_not == SymbolOperator.new(:foo, 'all')
23
23
  end
24
-
24
+
25
25
  should "be false if operators are equal but fields are not" do
26
26
  SymbolOperator.new(:foo, 'in').should_not == SymbolOperator.new(:bar, 'in')
27
27
  end
28
-
28
+
29
29
  should "be false if neither are equal" do
30
30
  SymbolOperator.new(:foo, 'in').should_not == SymbolOperator.new(:bar, 'all')
31
31
  end
32
+
33
+ should "be false if other isn't an symbol operator" do
34
+ assert_nothing_raised do
35
+ SymbolOperator.new(:foo, 'in').should_not == 'foo.in'
36
+ end
37
+ end
32
38
  end
33
39
 
34
40
  context "<=>" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plucky
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 1
10
- version: 0.4.1
9
+ - 2
10
+ version: 0.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - John Nunemaker
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-28 00:00:00 Z
18
+ date: 2011-10-08 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: mongo
@@ -25,12 +25,20 @@ dependencies:
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
- hash: 25
28
+ hash: 27
29
29
  segments:
30
30
  - 1
31
31
  - 3
32
+ - 0
33
+ version: 1.3.0
34
+ - - <
35
+ - !ruby/object:Gem::Version
36
+ hash: 3
37
+ segments:
32
38
  - 1
33
- version: 1.3.1
39
+ - 5
40
+ - 0
41
+ version: 1.5.0
34
42
  type: :runtime
35
43
  version_requirements: *id001
36
44
  description:
@@ -51,6 +59,7 @@ files:
51
59
  - lib/plucky/options_hash.rb
52
60
  - lib/plucky/pagination/decorator.rb
53
61
  - lib/plucky/pagination/paginator.rb
62
+ - lib/plucky/pagination.rb
54
63
  - lib/plucky/query.rb
55
64
  - lib/plucky/version.rb
56
65
  - lib/plucky.rb
@@ -95,10 +104,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
104
  requirements: []
96
105
 
97
106
  rubyforge_project:
98
- rubygems_version: 1.7.2
107
+ rubygems_version: 1.8.9
99
108
  signing_key:
100
109
  specification_version: 3
101
110
  summary: Thin layer over the ruby driver that allows you to quickly grab hold of your data (pluck it!).
102
111
  test_files: []
103
112
 
104
- has_rdoc: