mongoid 2.0.0.beta.9 → 2.0.0.beta.10
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.
- data/README.rdoc +2 -4
- data/lib/mongoid.rb +2 -1
- data/lib/mongoid/associations.rb +2 -3
- data/lib/mongoid/associations/embeds_many.rb +6 -2
- data/lib/mongoid/associations/embeds_one.rb +1 -3
- data/lib/mongoid/associations/options.rb +11 -10
- data/lib/mongoid/associations/references_many.rb +27 -4
- data/lib/mongoid/associations/references_many_as_array.rb +24 -4
- data/lib/mongoid/associations/references_one.rb +1 -2
- data/lib/mongoid/atomicity.rb +17 -4
- data/lib/mongoid/config.rb +97 -20
- data/lib/mongoid/contexts/enumerable.rb +9 -4
- data/lib/mongoid/contexts/mongo.rb +1 -1
- data/lib/mongoid/criteria.rb +7 -1
- data/lib/mongoid/criterion/inclusion.rb +12 -5
- data/lib/mongoid/criterion/optional.rb +26 -3
- data/lib/mongoid/cursor.rb +0 -1
- data/lib/mongoid/deprecation.rb +1 -2
- data/lib/mongoid/document.rb +25 -3
- data/lib/mongoid/extensions.rb +2 -1
- data/lib/mongoid/extensions/float/conversions.rb +1 -1
- data/lib/mongoid/extensions/integer/conversions.rb +1 -1
- data/lib/mongoid/extensions/symbol/conversions.rb +21 -0
- data/lib/mongoid/finders.rb +3 -2
- data/lib/mongoid/indexes.rb +17 -6
- data/lib/mongoid/logger.rb +19 -0
- data/lib/mongoid/paranoia.rb +12 -14
- data/lib/mongoid/persistence/remove_embedded.rb +0 -4
- data/lib/mongoid/persistence/update.rb +3 -0
- data/lib/mongoid/railtie.rb +37 -4
- data/lib/mongoid/railties/database.rake +19 -1
- data/lib/mongoid/validations/associated.rb +1 -1
- data/lib/mongoid/validations/locale/en.yml +4 -3
- data/lib/mongoid/validations/uniqueness.rb +19 -8
- data/lib/mongoid/version.rb +1 -1
- metadata +50 -18
- data/lib/mongoid/extensions/array/aliasing.rb +0 -4
|
@@ -18,7 +18,7 @@ namespace :db do
|
|
|
18
18
|
|
|
19
19
|
if not Rake::Task.task_defined?("db:setup")
|
|
20
20
|
desc 'Create the database, and initialize with the seed data'
|
|
21
|
-
task :setup => [ 'db:create', 'db:seed' ]
|
|
21
|
+
task :setup => [ 'db:create', 'db:create_indexes', 'db:seed' ]
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
if not Rake::Task.task_defined?("db:reseed")
|
|
@@ -46,6 +46,24 @@ namespace :db do
|
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
+
if not Rake::Task.task_defined?("db:test:prepare")
|
|
50
|
+
namespace :test do
|
|
51
|
+
task :prepare do
|
|
52
|
+
# noop
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
if not Rake::Task.task_defined?("db:create_indexes")
|
|
58
|
+
desc 'Create the indexes defined on your mongoid models'
|
|
59
|
+
task :create_indexes => :environment do
|
|
60
|
+
Mongoid::Document.descendents.each do |model|
|
|
61
|
+
model.create_indexes
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
|
|
49
67
|
########
|
|
50
68
|
# TODO: lots more useful db tasks can be added here. stuff like copyDatabase, etc
|
|
51
69
|
########
|
|
@@ -25,7 +25,7 @@ module Mongoid #:nodoc:
|
|
|
25
25
|
def validate_each(document, attribute, value)
|
|
26
26
|
values = value.is_a?(Array) ? value : [ value ]
|
|
27
27
|
return if values.collect { |doc| doc.nil? || doc.valid? }.all?
|
|
28
|
-
document.errors.add(attribute, :invalid,
|
|
28
|
+
document.errors.add(attribute, :invalid, options.merge!(:value => value))
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -17,18 +17,29 @@ module Mongoid #:nodoc:
|
|
|
17
17
|
def setup(klass)
|
|
18
18
|
@klass = klass
|
|
19
19
|
end
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
def validate_each(document, attribute, value)
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
if document.embedded?
|
|
23
|
+
return if document._parent.nil?
|
|
24
|
+
|
|
25
|
+
criteria = document._parent.send(document.association_name)
|
|
26
|
+
|
|
27
|
+
# If the parent document embeds_one, no need to validate uniqueness
|
|
28
|
+
return if criteria.is_a?(Mongoid::Document)
|
|
29
|
+
|
|
30
|
+
criteria = criteria.where(attribute => value, :_id => {'$ne' => document._id})
|
|
31
|
+
else
|
|
32
|
+
criteria = @klass.where(attribute => value)
|
|
33
|
+
|
|
34
|
+
unless document.new_record?
|
|
35
|
+
criteria = criteria.where(:_id => {'$ne' => document._id})
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
24
39
|
Array.wrap(options[:scope]).each do |item|
|
|
25
40
|
criteria = criteria.where(item => document.attributes[item])
|
|
26
41
|
end
|
|
27
|
-
|
|
28
|
-
unless document.new_record?
|
|
29
|
-
criteria = criteria.where(:_id => {'$ne' => document._id})
|
|
30
|
-
end
|
|
31
|
-
|
|
42
|
+
|
|
32
43
|
if criteria.exists?
|
|
33
44
|
document.errors.add(attribute, :taken, :default => options[:message], :value => value)
|
|
34
45
|
end
|
data/lib/mongoid/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mongoid
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 62196471
|
|
5
5
|
prerelease: true
|
|
6
6
|
segments:
|
|
7
7
|
- 2
|
|
8
8
|
- 0
|
|
9
9
|
- 0
|
|
10
10
|
- beta
|
|
11
|
-
-
|
|
12
|
-
version: 2.0.0.beta.
|
|
11
|
+
- 10
|
|
12
|
+
version: 2.0.0.beta.10
|
|
13
13
|
platform: ruby
|
|
14
14
|
authors:
|
|
15
15
|
- Durran Jordan
|
|
@@ -77,12 +77,12 @@ dependencies:
|
|
|
77
77
|
requirements:
|
|
78
78
|
- - ~>
|
|
79
79
|
- !ruby/object:Gem::Version
|
|
80
|
-
hash:
|
|
80
|
+
hash: 29
|
|
81
81
|
segments:
|
|
82
82
|
- 1
|
|
83
83
|
- 0
|
|
84
|
-
-
|
|
85
|
-
version: 1.0.
|
|
84
|
+
- 5
|
|
85
|
+
version: 1.0.5
|
|
86
86
|
type: :runtime
|
|
87
87
|
version_requirements: *id004
|
|
88
88
|
- !ruby/object:Gem::Dependency
|
|
@@ -93,30 +93,28 @@ dependencies:
|
|
|
93
93
|
requirements:
|
|
94
94
|
- - ~>
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
hash:
|
|
96
|
+
hash: 31
|
|
97
97
|
segments:
|
|
98
98
|
- 1
|
|
99
99
|
- 0
|
|
100
|
-
-
|
|
101
|
-
version: 1.0.
|
|
100
|
+
- 4
|
|
101
|
+
version: 1.0.4
|
|
102
102
|
type: :runtime
|
|
103
103
|
version_requirements: *id005
|
|
104
104
|
- !ruby/object:Gem::Dependency
|
|
105
|
-
name:
|
|
105
|
+
name: bson_ext
|
|
106
106
|
prerelease: false
|
|
107
107
|
requirement: &id006 !ruby/object:Gem::Requirement
|
|
108
108
|
none: false
|
|
109
109
|
requirements:
|
|
110
|
-
- -
|
|
110
|
+
- - ~>
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
|
-
hash:
|
|
112
|
+
hash: 31
|
|
113
113
|
segments:
|
|
114
|
-
-
|
|
115
|
-
- 0
|
|
114
|
+
- 1
|
|
116
115
|
- 0
|
|
117
|
-
-
|
|
118
|
-
|
|
119
|
-
version: 2.0.0.beta.12
|
|
116
|
+
- 4
|
|
117
|
+
version: 1.0.4
|
|
120
118
|
type: :development
|
|
121
119
|
version_requirements: *id006
|
|
122
120
|
- !ruby/object:Gem::Dependency
|
|
@@ -135,6 +133,39 @@ dependencies:
|
|
|
135
133
|
version: 0.9.8
|
|
136
134
|
type: :development
|
|
137
135
|
version_requirements: *id007
|
|
136
|
+
- !ruby/object:Gem::Dependency
|
|
137
|
+
name: rspec
|
|
138
|
+
prerelease: false
|
|
139
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
|
140
|
+
none: false
|
|
141
|
+
requirements:
|
|
142
|
+
- - "="
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
144
|
+
hash: 62196419
|
|
145
|
+
segments:
|
|
146
|
+
- 2
|
|
147
|
+
- 0
|
|
148
|
+
- 0
|
|
149
|
+
- beta
|
|
150
|
+
- 16
|
|
151
|
+
version: 2.0.0.beta.16
|
|
152
|
+
type: :development
|
|
153
|
+
version_requirements: *id008
|
|
154
|
+
- !ruby/object:Gem::Dependency
|
|
155
|
+
name: watchr
|
|
156
|
+
prerelease: false
|
|
157
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
|
158
|
+
none: false
|
|
159
|
+
requirements:
|
|
160
|
+
- - "="
|
|
161
|
+
- !ruby/object:Gem::Version
|
|
162
|
+
hash: 7
|
|
163
|
+
segments:
|
|
164
|
+
- 0
|
|
165
|
+
- 6
|
|
166
|
+
version: "0.6"
|
|
167
|
+
type: :development
|
|
168
|
+
version_requirements: *id009
|
|
138
169
|
description: Mongoid is an ODM (Object Document Mapper) Framework for MongoDB, written in Ruby.
|
|
139
170
|
email:
|
|
140
171
|
- durran@gmail.com
|
|
@@ -184,7 +215,6 @@ files:
|
|
|
184
215
|
- lib/mongoid/document.rb
|
|
185
216
|
- lib/mongoid/errors.rb
|
|
186
217
|
- lib/mongoid/extensions/array/accessors.rb
|
|
187
|
-
- lib/mongoid/extensions/array/aliasing.rb
|
|
188
218
|
- lib/mongoid/extensions/array/assimilation.rb
|
|
189
219
|
- lib/mongoid/extensions/array/conversions.rb
|
|
190
220
|
- lib/mongoid/extensions/array/parentization.rb
|
|
@@ -208,6 +238,7 @@ files:
|
|
|
208
238
|
- lib/mongoid/extensions/set/conversions.rb
|
|
209
239
|
- lib/mongoid/extensions/string/conversions.rb
|
|
210
240
|
- lib/mongoid/extensions/string/inflections.rb
|
|
241
|
+
- lib/mongoid/extensions/symbol/conversions.rb
|
|
211
242
|
- lib/mongoid/extensions/symbol/inflections.rb
|
|
212
243
|
- lib/mongoid/extensions/time_conversions.rb
|
|
213
244
|
- lib/mongoid/extensions/true_class/equality.rb
|
|
@@ -222,6 +253,7 @@ files:
|
|
|
222
253
|
- lib/mongoid/indexes.rb
|
|
223
254
|
- lib/mongoid/javascript/functions.yml
|
|
224
255
|
- lib/mongoid/javascript.rb
|
|
256
|
+
- lib/mongoid/logger.rb
|
|
225
257
|
- lib/mongoid/matchers/all.rb
|
|
226
258
|
- lib/mongoid/matchers/default.rb
|
|
227
259
|
- lib/mongoid/matchers/exists.rb
|