mongoid 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/Rakefile +4 -4
  2. data/lib/config/locales/{pt-br.yml → pt-BR.yml} +5 -5
  3. data/lib/config/locales/ru.yml +1 -1
  4. data/lib/config/locales/zh-CN.yml +2 -0
  5. data/lib/mongoid.rb +0 -1
  6. data/lib/mongoid/attributes.rb +9 -6
  7. data/lib/mongoid/collection.rb +21 -0
  8. data/lib/mongoid/config.rb +31 -8
  9. data/lib/mongoid/config/replset_database.rb +32 -2
  10. data/lib/mongoid/contexts.rb +0 -1
  11. data/lib/mongoid/contexts/enumerable.rb +73 -36
  12. data/lib/mongoid/contexts/mongo.rb +5 -12
  13. data/lib/mongoid/copyable.rb +2 -2
  14. data/lib/mongoid/criteria.rb +4 -23
  15. data/lib/mongoid/criterion/exclusion.rb +15 -0
  16. data/lib/mongoid/criterion/inclusion.rb +1 -1
  17. data/lib/mongoid/criterion/optional.rb +0 -1
  18. data/lib/mongoid/criterion/unconvertable.rb +20 -0
  19. data/lib/mongoid/cursor.rb +3 -3
  20. data/lib/mongoid/dirty.rb +8 -8
  21. data/lib/mongoid/document.rb +33 -36
  22. data/lib/mongoid/extensions.rb +7 -0
  23. data/lib/mongoid/extensions/object/checks.rb +32 -0
  24. data/lib/mongoid/extensions/object/conversions.rb +1 -1
  25. data/lib/mongoid/extensions/object_id/conversions.rb +6 -1
  26. data/lib/mongoid/extensions/range/conversions.rb +25 -0
  27. data/lib/mongoid/factory.rb +27 -10
  28. data/lib/mongoid/field.rb +50 -0
  29. data/lib/mongoid/fields.rb +42 -7
  30. data/lib/mongoid/finders.rb +5 -17
  31. data/lib/mongoid/identity.rb +1 -1
  32. data/lib/mongoid/inspection.rb +17 -21
  33. data/lib/mongoid/matchers.rb +6 -2
  34. data/lib/mongoid/matchers/strategies.rb +2 -2
  35. data/lib/mongoid/named_scope.rb +1 -1
  36. data/lib/mongoid/observer.rb +45 -14
  37. data/lib/mongoid/paranoia.rb +2 -2
  38. data/lib/mongoid/persistence.rb +2 -2
  39. data/lib/mongoid/persistence/update.rb +2 -1
  40. data/lib/mongoid/railtie.rb +3 -5
  41. data/lib/mongoid/relations.rb +1 -0
  42. data/lib/mongoid/relations/builders.rb +3 -3
  43. data/lib/mongoid/relations/builders/embedded/in.rb +1 -1
  44. data/lib/mongoid/relations/builders/embedded/many.rb +1 -1
  45. data/lib/mongoid/relations/builders/embedded/one.rb +1 -2
  46. data/lib/mongoid/relations/builders/referenced/in.rb +0 -3
  47. data/lib/mongoid/relations/builders/referenced/many.rb +21 -1
  48. data/lib/mongoid/relations/builders/referenced/one.rb +0 -4
  49. data/lib/mongoid/relations/embedded/many.rb +1 -17
  50. data/lib/mongoid/relations/macros.rb +3 -2
  51. data/lib/mongoid/relations/many.rb +2 -0
  52. data/lib/mongoid/relations/proxy.rb +1 -1
  53. data/lib/mongoid/relations/referenced/batch.rb +71 -0
  54. data/lib/mongoid/relations/referenced/batch/insert.rb +57 -0
  55. data/lib/mongoid/relations/referenced/many.rb +61 -2
  56. data/lib/mongoid/serialization.rb +1 -1
  57. data/lib/mongoid/validations/uniqueness.rb +1 -1
  58. data/lib/mongoid/version.rb +1 -1
  59. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +8 -11
  60. metadata +22 -64
  61. data/lib/mongoid/contexts/paging.rb +0 -50
@@ -50,7 +50,7 @@ module Mongoid # :nodoc:
50
50
  #
51
51
  # @since 2.0.0.rc.6
52
52
  def serialize_relations(attributes = {}, options = {})
53
- inclusions = options.delete(:include)
53
+ inclusions = options[:include]
54
54
  relation_names(inclusions).each do |name|
55
55
  metadata = relations[name.to_s]
56
56
  relation = send(metadata.name, false, :eager => true)
@@ -45,7 +45,7 @@ module Mongoid #:nodoc:
45
45
  end
46
46
 
47
47
  Array.wrap(options[:scope]).each do |item|
48
- criteria = criteria.where(item => document.attributes[item])
48
+ criteria = criteria.where(item => document.attributes[item.to_s])
49
49
  end
50
50
  if criteria.exists?
51
51
  document.errors.add(
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Mongoid #:nodoc
3
- VERSION = "2.0.1"
3
+ VERSION = "2.0.2"
4
4
  end
@@ -1,17 +1,9 @@
1
- defaults: &defaults
2
- host: localhost
3
- # slaves:
4
- # - host: slave1.local
5
- # port: 27018
6
- # - host: slave2.local
7
- # port: 27019
8
-
9
1
  development:
10
- <<: *defaults
2
+ host: localhost
11
3
  database: <%= database_name || app_name %>_development
12
4
 
13
5
  test:
14
- <<: *defaults
6
+ host: localhost
15
7
  database: <%= database_name || app_name %>_test
16
8
 
17
9
  # set these environment variables on your prod server
@@ -20,4 +12,9 @@ production:
20
12
  port: <%%= ENV['MONGOID_PORT'] %>
21
13
  username: <%%= ENV['MONGOID_USERNAME'] %>
22
14
  password: <%%= ENV['MONGOID_PASSWORD'] %>
23
- database: <%%= ENV['MONGOID_DATABASE'] %>
15
+ database: <%%= ENV['MONGOID_DATABASE'] %>
16
+ # slaves:
17
+ # - host: slave1.local
18
+ # port: 27018
19
+ # - host: slave2.local
20
+ # port: 27019
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 2
7
- - 0
8
- - 1
9
- version: 2.0.1
4
+ prerelease:
5
+ version: 2.0.2
10
6
  platform: ruby
11
7
  authors:
12
8
  - Durran Jordan
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-04-06 00:00:00 +02:00
13
+ date: 2011-05-22 00:00:00 +02:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -24,9 +20,6 @@ dependencies:
24
20
  requirements:
25
21
  - - ~>
26
22
  - !ruby/object:Gem::Version
27
- segments:
28
- - 3
29
- - 0
30
23
  version: "3.0"
31
24
  type: :runtime
32
25
  prerelease: false
@@ -38,100 +31,65 @@ dependencies:
38
31
  requirements:
39
32
  - - ~>
40
33
  - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- - 3
44
- - 22
45
34
  version: 0.3.22
46
35
  type: :runtime
47
36
  prerelease: false
48
37
  version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: will_paginate
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ~>
55
- - !ruby/object:Gem::Version
56
- segments:
57
- - 3
58
- - 0
59
- - pre
60
- version: 3.0.pre
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: *id003
64
38
  - !ruby/object:Gem::Dependency
65
39
  name: mongo
66
- requirement: &id004 !ruby/object:Gem::Requirement
40
+ requirement: &id003 !ruby/object:Gem::Requirement
67
41
  none: false
68
42
  requirements:
69
43
  - - ~>
70
44
  - !ruby/object:Gem::Version
71
- segments:
72
- - 1
73
- - 3
74
45
  version: "1.3"
75
46
  type: :runtime
76
47
  prerelease: false
77
- version_requirements: *id004
48
+ version_requirements: *id003
78
49
  - !ruby/object:Gem::Dependency
79
50
  name: bson_ext
80
- requirement: &id005 !ruby/object:Gem::Requirement
51
+ requirement: &id004 !ruby/object:Gem::Requirement
81
52
  none: false
82
53
  requirements:
83
54
  - - ~>
84
55
  - !ruby/object:Gem::Version
85
- segments:
86
- - 1
87
- - 3
88
56
  version: "1.3"
89
57
  type: :development
90
58
  prerelease: false
91
- version_requirements: *id005
59
+ version_requirements: *id004
92
60
  - !ruby/object:Gem::Dependency
93
61
  name: mocha
94
- requirement: &id006 !ruby/object:Gem::Requirement
62
+ requirement: &id005 !ruby/object:Gem::Requirement
95
63
  none: false
96
64
  requirements:
97
65
  - - "="
98
66
  - !ruby/object:Gem::Version
99
- segments:
100
- - 0
101
- - 9
102
- - 8
103
67
  version: 0.9.8
104
68
  type: :development
105
69
  prerelease: false
106
- version_requirements: *id006
70
+ version_requirements: *id005
107
71
  - !ruby/object:Gem::Dependency
108
72
  name: rspec
109
- requirement: &id007 !ruby/object:Gem::Requirement
73
+ requirement: &id006 !ruby/object:Gem::Requirement
110
74
  none: false
111
75
  requirements:
112
76
  - - ~>
113
77
  - !ruby/object:Gem::Version
114
- segments:
115
- - 2
116
- - 4
117
- version: "2.4"
78
+ version: "2.6"
118
79
  type: :development
119
80
  prerelease: false
120
- version_requirements: *id007
81
+ version_requirements: *id006
121
82
  - !ruby/object:Gem::Dependency
122
83
  name: watchr
123
- requirement: &id008 !ruby/object:Gem::Requirement
84
+ requirement: &id007 !ruby/object:Gem::Requirement
124
85
  none: false
125
86
  requirements:
126
87
  - - "="
127
88
  - !ruby/object:Gem::Version
128
- segments:
129
- - 0
130
- - 6
131
89
  version: "0.6"
132
90
  type: :development
133
91
  prerelease: false
134
- version_requirements: *id008
92
+ version_requirements: *id007
135
93
  description: Mongoid is an ODM (Object Document Mapper) Framework for MongoDB, written in Ruby.
136
94
  email:
137
95
  - durran@gmail.com
@@ -154,7 +112,7 @@ files:
154
112
  - lib/config/locales/kr.yml
155
113
  - lib/config/locales/nl.yml
156
114
  - lib/config/locales/pl.yml
157
- - lib/config/locales/pt-br.yml
115
+ - lib/config/locales/pt-BR.yml
158
116
  - lib/config/locales/pt.yml
159
117
  - lib/config/locales/ro.yml
160
118
  - lib/config/locales/ru.yml
@@ -179,7 +137,6 @@ files:
179
137
  - lib/mongoid/contexts/enumerable/sort.rb
180
138
  - lib/mongoid/contexts/enumerable.rb
181
139
  - lib/mongoid/contexts/mongo.rb
182
- - lib/mongoid/contexts/paging.rb
183
140
  - lib/mongoid/contexts.rb
184
141
  - lib/mongoid/copyable.rb
185
142
  - lib/mongoid/criteria.rb
@@ -191,6 +148,7 @@ files:
191
148
  - lib/mongoid/criterion/inspection.rb
192
149
  - lib/mongoid/criterion/optional.rb
193
150
  - lib/mongoid/criterion/selector.rb
151
+ - lib/mongoid/criterion/unconvertable.rb
194
152
  - lib/mongoid/cursor.rb
195
153
  - lib/mongoid/default_scope.rb
196
154
  - lib/mongoid/dirty.rb
@@ -222,11 +180,13 @@ files:
222
180
  - lib/mongoid/extensions/hash/scoping.rb
223
181
  - lib/mongoid/extensions/integer/conversions.rb
224
182
  - lib/mongoid/extensions/nil/collectionization.rb
183
+ - lib/mongoid/extensions/object/checks.rb
225
184
  - lib/mongoid/extensions/object/conversions.rb
226
185
  - lib/mongoid/extensions/object/reflections.rb
227
186
  - lib/mongoid/extensions/object/yoda.rb
228
187
  - lib/mongoid/extensions/object_id/conversions.rb
229
188
  - lib/mongoid/extensions/proc/scoping.rb
189
+ - lib/mongoid/extensions/range/conversions.rb
230
190
  - lib/mongoid/extensions/set/conversions.rb
231
191
  - lib/mongoid/extensions/string/conversions.rb
232
192
  - lib/mongoid/extensions/string/inflections.rb
@@ -332,6 +292,8 @@ files:
332
292
  - lib/mongoid/relations/one.rb
333
293
  - lib/mongoid/relations/polymorphic.rb
334
294
  - lib/mongoid/relations/proxy.rb
295
+ - lib/mongoid/relations/referenced/batch/insert.rb
296
+ - lib/mongoid/relations/referenced/batch.rb
335
297
  - lib/mongoid/relations/referenced/in.rb
336
298
  - lib/mongoid/relations/referenced/many.rb
337
299
  - lib/mongoid/relations/referenced/many_to_many.rb
@@ -379,7 +341,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
379
341
  requirements:
380
342
  - - ">="
381
343
  - !ruby/object:Gem::Version
382
- hash: -858318852006999862
344
+ hash: -1675372981513058867
383
345
  segments:
384
346
  - 0
385
347
  version: "0"
@@ -388,15 +350,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
388
350
  requirements:
389
351
  - - ">="
390
352
  - !ruby/object:Gem::Version
391
- segments:
392
- - 1
393
- - 3
394
- - 6
395
353
  version: 1.3.6
396
354
  requirements: []
397
355
 
398
356
  rubyforge_project: mongoid
399
- rubygems_version: 1.3.7
357
+ rubygems_version: 1.6.2
400
358
  signing_key:
401
359
  specification_version: 3
402
360
  summary: Elegant Persistance in Ruby for MongoDB.
@@ -1,50 +0,0 @@
1
- # encoding: utf-8
2
- module Mongoid #:nodoc:
3
- module Contexts #:nodoc:
4
- module Paging
5
- # Paginates the documents.
6
- #
7
- # Example:
8
- #
9
- # <tt>context.paginate(:page => 6, :per_page => 25)</tt>
10
- #
11
- # Returns:
12
- #
13
- # A collection of documents paginated.
14
- # All previous <tt>limit</tt> and <tt>skip</tt> call will be ignored.
15
- def paginate(pager_options={})
16
- if pager_options[:per_page]
17
- options[:limit] = pager_options[:per_page].to_i
18
- if pager_options[:page]
19
- options[:skip] = (pager_options[:page].to_i - 1) * pager_options[:per_page].to_i
20
- end
21
- end
22
-
23
- @collection ||= execute(true)
24
- WillPaginate::Collection.create(page, per_page, count) do |pager|
25
- pager.replace(@collection.to_a)
26
- end
27
- end
28
-
29
- # Either returns the page option and removes it from the options, or
30
- # returns a default value of 1.
31
- #
32
- # Returns:
33
- #
34
- # An +Integer+ page number.
35
- def page
36
- skips, limits = options[:skip], options[:limit]
37
- (skips && limits) ? (skips + limits) / limits : 1
38
- end
39
-
40
- # Get the number of results per page or the default of 20.
41
- #
42
- # Returns:
43
- #
44
- # The +Integer+ number of documents in each page.
45
- def per_page
46
- (options[:limit] || 20).to_i
47
- end
48
- end
49
- end
50
- end