mongo_mapper 0.7.2 → 0.7.3
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/Rakefile +1 -17
- data/lib/mongo_mapper.rb +6 -27
- data/lib/mongo_mapper/document.rb +3 -53
- data/lib/mongo_mapper/embedded_document.rb +1 -0
- data/lib/mongo_mapper/plugins.rb +1 -0
- data/lib/mongo_mapper/plugins/keys.rb +4 -2
- data/lib/mongo_mapper/plugins/persistence.rb +68 -0
- data/lib/mongo_mapper/support.rb +3 -2
- data/lib/mongo_mapper/version.rb +1 -1
- data/mongo_mapper.gemspec +6 -5
- data/test/functional/test_document.rb +9 -1
- data/test/functional/test_embedded_document.rb +11 -1
- data/test/functional/test_identity_map.rb +0 -1
- data/test/functional/test_indexing.rb +2 -2
- data/test/functional/test_protected.rb +0 -2
- data/test/models.rb +0 -5
- data/test/unit/test_embedded_document.rb +9 -9
- data/test/unit/test_mongo_mapper.rb +0 -37
- data/test/unit/test_rails_compatibility.rb +3 -3
- metadata +6 -5
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ Jeweler::Tasks.new do |gem|
|
|
13
13
|
gem.version = MongoMapper::Version
|
14
14
|
|
15
15
|
gem.add_dependency('activesupport', '>= 2.3.4')
|
16
|
-
gem.add_dependency('mongo', '0.19.
|
16
|
+
gem.add_dependency('mongo', '0.19.3')
|
17
17
|
gem.add_dependency('jnunemaker-validatable', '1.8.3')
|
18
18
|
|
19
19
|
gem.add_development_dependency('jnunemaker-matchy', '0.4.0')
|
@@ -32,21 +32,5 @@ Rake::TestTask.new(:test) do |test|
|
|
32
32
|
test.verbose = true
|
33
33
|
end
|
34
34
|
|
35
|
-
namespace :test do
|
36
|
-
Rake::TestTask.new(:units) do |test|
|
37
|
-
test.libs << 'test'
|
38
|
-
test.ruby_opts << '-rubygems'
|
39
|
-
test.pattern = 'test/unit/**/test_*.rb'
|
40
|
-
test.verbose = true
|
41
|
-
end
|
42
|
-
|
43
|
-
Rake::TestTask.new(:functionals) do |test|
|
44
|
-
test.libs << 'test'
|
45
|
-
test.ruby_opts << '-rubygems'
|
46
|
-
test.pattern = 'test/functional/**/test_*.rb'
|
47
|
-
test.verbose = true
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
35
|
task :default => :test
|
52
36
|
task :test => :check_dependencies
|
data/lib/mongo_mapper.rb
CHANGED
@@ -1,19 +1,13 @@
|
|
1
|
+
# Make sure you have the following libs in your load path or you could have issues:
|
2
|
+
# gem 'activesupport', '>= 2.3.4'
|
3
|
+
# gem 'mongo', '0.19.3'
|
4
|
+
# gem 'jnunemaker-validatable', '1.8.3'
|
5
|
+
# gem 'activesupport', '= 2.3.4'
|
1
6
|
require 'set'
|
2
7
|
require 'uri'
|
3
|
-
|
4
|
-
# if Gem is defined i'll assume you are using rubygems and lock specific versions
|
5
|
-
# call me crazy but a plain old require will just get the latest version you have installed
|
6
|
-
# so i want to make sure that if you are using gems you do in fact have the correct versions
|
7
|
-
# if there is a better way to do this, please enlighten me!
|
8
|
-
if self.class.const_defined?(:Gem)
|
9
|
-
gem 'activesupport', '>= 2.3.4'
|
10
|
-
gem 'mongo', '0.19.1'
|
11
|
-
gem 'jnunemaker-validatable', '1.8.3'
|
12
|
-
end
|
13
|
-
|
14
|
-
require 'active_support/all'
|
15
8
|
require 'mongo'
|
16
9
|
require 'validatable'
|
10
|
+
require 'active_support/all'
|
17
11
|
|
18
12
|
module MongoMapper
|
19
13
|
# generic MM error
|
@@ -113,21 +107,6 @@ module MongoMapper
|
|
113
107
|
end
|
114
108
|
end
|
115
109
|
|
116
|
-
# @api private
|
117
|
-
def self.use_time_zone?
|
118
|
-
Time.respond_to?(:zone) && Time.zone ? true : false
|
119
|
-
end
|
120
|
-
|
121
|
-
# @api private
|
122
|
-
def self.time_class
|
123
|
-
use_time_zone? ? Time.zone : Time
|
124
|
-
end
|
125
|
-
|
126
|
-
# @api private
|
127
|
-
def self.normalize_object_id(value)
|
128
|
-
value.is_a?(String) ? Mongo::ObjectID.from_string(value) : value
|
129
|
-
end
|
130
|
-
|
131
110
|
autoload :Query, 'mongo_mapper/query'
|
132
111
|
autoload :Document, 'mongo_mapper/document'
|
133
112
|
autoload :EmbeddedDocument, 'mongo_mapper/embedded_document'
|
@@ -19,6 +19,7 @@ module MongoMapper
|
|
19
19
|
plugin Plugins::Logger
|
20
20
|
plugin Plugins::Modifiers
|
21
21
|
plugin Plugins::Pagination
|
22
|
+
plugin Plugins::Persistence
|
22
23
|
plugin Plugins::Protected
|
23
24
|
plugin Plugins::Rails
|
24
25
|
plugin Plugins::Serialization
|
@@ -39,14 +40,8 @@ module MongoMapper
|
|
39
40
|
super
|
40
41
|
end
|
41
42
|
|
42
|
-
def ensure_index(
|
43
|
-
|
44
|
-
name_or_array.map { |pair| [pair[0], pair[1]] }
|
45
|
-
else
|
46
|
-
name_or_array
|
47
|
-
end
|
48
|
-
|
49
|
-
collection.create_index(keys_to_index, options[:unique])
|
43
|
+
def ensure_index(spec, options={})
|
44
|
+
collection.create_index(spec, options)
|
50
45
|
end
|
51
46
|
|
52
47
|
def find(*args)
|
@@ -150,43 +145,6 @@ module MongoMapper
|
|
150
145
|
false
|
151
146
|
end
|
152
147
|
|
153
|
-
def connection(mongo_connection=nil)
|
154
|
-
if mongo_connection.nil?
|
155
|
-
@connection ||= MongoMapper.connection
|
156
|
-
else
|
157
|
-
@connection = mongo_connection
|
158
|
-
end
|
159
|
-
@connection
|
160
|
-
end
|
161
|
-
|
162
|
-
def set_database_name(name)
|
163
|
-
@database_name = name
|
164
|
-
end
|
165
|
-
|
166
|
-
def database_name
|
167
|
-
@database_name
|
168
|
-
end
|
169
|
-
|
170
|
-
def database
|
171
|
-
if database_name.nil?
|
172
|
-
MongoMapper.database
|
173
|
-
else
|
174
|
-
connection.db(database_name)
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
def set_collection_name(name)
|
179
|
-
@collection_name = name
|
180
|
-
end
|
181
|
-
|
182
|
-
def collection_name
|
183
|
-
@collection_name ||= self.to_s.tableize.gsub(/\//, '.')
|
184
|
-
end
|
185
|
-
|
186
|
-
def collection
|
187
|
-
database.collection(collection_name)
|
188
|
-
end
|
189
|
-
|
190
148
|
def single_collection_inherited?
|
191
149
|
keys.key?(:_type) && single_collection_inherited_superclass?
|
192
150
|
end
|
@@ -287,14 +245,6 @@ module MongoMapper
|
|
287
245
|
end
|
288
246
|
|
289
247
|
module InstanceMethods
|
290
|
-
def collection
|
291
|
-
self.class.collection
|
292
|
-
end
|
293
|
-
|
294
|
-
def database
|
295
|
-
self.class.database
|
296
|
-
end
|
297
|
-
|
298
248
|
def save(options={})
|
299
249
|
options.assert_valid_keys(:validate, :safe)
|
300
250
|
options.reverse_merge!(:validate => true)
|
data/lib/mongo_mapper/plugins.rb
CHANGED
@@ -21,6 +21,7 @@ module MongoMapper
|
|
21
21
|
autoload :Keys, 'mongo_mapper/plugins/keys'
|
22
22
|
autoload :Logger, 'mongo_mapper/plugins/logger'
|
23
23
|
autoload :Modifiers, 'mongo_mapper/plugins/modifiers'
|
24
|
+
autoload :Persistence, 'mongo_mapper/plugins/persistence'
|
24
25
|
autoload :Protected, 'mongo_mapper/plugins/protected'
|
25
26
|
autoload :Rails, 'mongo_mapper/plugins/rails'
|
26
27
|
autoload :Serialization, 'mongo_mapper/plugins/serialization'
|
@@ -7,6 +7,7 @@ module MongoMapper
|
|
7
7
|
|
8
8
|
module ClassMethods
|
9
9
|
def inherited(descendant)
|
10
|
+
key :_type, String unless keys.keys.include?(:_type)
|
10
11
|
descendant.instance_variable_set(:@keys, keys.dup)
|
11
12
|
super
|
12
13
|
end
|
@@ -147,7 +148,6 @@ module MongoMapper
|
|
147
148
|
module InstanceMethods
|
148
149
|
def initialize(attrs={}, from_database=false)
|
149
150
|
default_id_value(attrs)
|
150
|
-
assign_type
|
151
151
|
|
152
152
|
if from_database
|
153
153
|
@new = false
|
@@ -156,6 +156,8 @@ module MongoMapper
|
|
156
156
|
@new = true
|
157
157
|
assign(attrs)
|
158
158
|
end
|
159
|
+
|
160
|
+
assign_type
|
159
161
|
end
|
160
162
|
|
161
163
|
def persisted?
|
@@ -214,7 +216,7 @@ module MongoMapper
|
|
214
216
|
|
215
217
|
def id=(value)
|
216
218
|
if self.class.using_object_id?
|
217
|
-
value =
|
219
|
+
value = ObjectId.to_mongo(value)
|
218
220
|
end
|
219
221
|
|
220
222
|
self[:_id] = value
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module MongoMapper
|
2
|
+
module Plugins
|
3
|
+
module Persistence
|
4
|
+
module ClassMethods
|
5
|
+
class Unsupported < MongoMapperError; end
|
6
|
+
|
7
|
+
def connection(mongo_connection=nil)
|
8
|
+
not_supported_by_embedded
|
9
|
+
if mongo_connection.nil?
|
10
|
+
@connection ||= MongoMapper.connection
|
11
|
+
else
|
12
|
+
@connection = mongo_connection
|
13
|
+
end
|
14
|
+
@connection
|
15
|
+
end
|
16
|
+
|
17
|
+
def set_database_name(name)
|
18
|
+
not_supported_by_embedded
|
19
|
+
@database_name = name
|
20
|
+
end
|
21
|
+
|
22
|
+
def database_name
|
23
|
+
not_supported_by_embedded
|
24
|
+
@database_name
|
25
|
+
end
|
26
|
+
|
27
|
+
def database
|
28
|
+
not_supported_by_embedded
|
29
|
+
if database_name.nil?
|
30
|
+
MongoMapper.database
|
31
|
+
else
|
32
|
+
connection.db(database_name)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def set_collection_name(name)
|
37
|
+
not_supported_by_embedded
|
38
|
+
@collection_name = name
|
39
|
+
end
|
40
|
+
|
41
|
+
def collection_name
|
42
|
+
not_supported_by_embedded
|
43
|
+
@collection_name ||= self.to_s.tableize.gsub(/\//, '.')
|
44
|
+
end
|
45
|
+
|
46
|
+
def collection
|
47
|
+
not_supported_by_embedded
|
48
|
+
database.collection(collection_name)
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
def not_supported_by_embedded
|
53
|
+
raise Unsupported.new('This is not supported for embeddable documents at this time.') if embeddable?
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
module InstanceMethods
|
58
|
+
def collection
|
59
|
+
_root_document.class.collection
|
60
|
+
end
|
61
|
+
|
62
|
+
def database
|
63
|
+
_root_document.class.database
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
data/lib/mongo_mapper/support.rb
CHANGED
@@ -182,14 +182,15 @@ class Time
|
|
182
182
|
if value.nil? || value == ''
|
183
183
|
nil
|
184
184
|
else
|
185
|
-
|
185
|
+
time_class = Time.try(:zone).present? ? Time.zone : Time
|
186
|
+
time = value.is_a?(Time) ? value : time_class.parse(value.to_s)
|
186
187
|
# Convert time to milliseconds since BSON stores dates with that accurracy, but Ruby uses microseconds
|
187
188
|
Time.at((time.to_f * 1000).round / 1000.0).utc if time
|
188
189
|
end
|
189
190
|
end
|
190
191
|
|
191
192
|
def self.from_mongo(value)
|
192
|
-
if
|
193
|
+
if Time.try(:zone).present? && value.present?
|
193
194
|
value.in_time_zone(Time.zone)
|
194
195
|
else
|
195
196
|
value
|
data/lib/mongo_mapper/version.rb
CHANGED
data/mongo_mapper.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{mongo_mapper}
|
8
|
-
s.version = "0.7.
|
8
|
+
s.version = "0.7.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["John Nunemaker"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-04-05}
|
13
13
|
s.default_executable = %q{mmconsole}
|
14
14
|
s.email = %q{nunemaker@gmail.com}
|
15
15
|
s.executables = ["mmconsole"]
|
@@ -53,6 +53,7 @@ Gem::Specification.new do |s|
|
|
53
53
|
"lib/mongo_mapper/plugins/modifiers.rb",
|
54
54
|
"lib/mongo_mapper/plugins/pagination.rb",
|
55
55
|
"lib/mongo_mapper/plugins/pagination/proxy.rb",
|
56
|
+
"lib/mongo_mapper/plugins/persistence.rb",
|
56
57
|
"lib/mongo_mapper/plugins/protected.rb",
|
57
58
|
"lib/mongo_mapper/plugins/rails.rb",
|
58
59
|
"lib/mongo_mapper/plugins/serialization.rb",
|
@@ -179,7 +180,7 @@ Gem::Specification.new do |s|
|
|
179
180
|
|
180
181
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
181
182
|
s.add_runtime_dependency(%q<activesupport>, [">= 2.3.4"])
|
182
|
-
s.add_runtime_dependency(%q<mongo>, ["= 0.19.
|
183
|
+
s.add_runtime_dependency(%q<mongo>, ["= 0.19.3"])
|
183
184
|
s.add_runtime_dependency(%q<jnunemaker-validatable>, ["= 1.8.3"])
|
184
185
|
s.add_development_dependency(%q<jnunemaker-matchy>, ["= 0.4.0"])
|
185
186
|
s.add_development_dependency(%q<shoulda>, ["= 2.10.2"])
|
@@ -187,7 +188,7 @@ Gem::Specification.new do |s|
|
|
187
188
|
s.add_development_dependency(%q<mocha>, ["= 0.9.8"])
|
188
189
|
else
|
189
190
|
s.add_dependency(%q<activesupport>, [">= 2.3.4"])
|
190
|
-
s.add_dependency(%q<mongo>, ["= 0.19.
|
191
|
+
s.add_dependency(%q<mongo>, ["= 0.19.3"])
|
191
192
|
s.add_dependency(%q<jnunemaker-validatable>, ["= 1.8.3"])
|
192
193
|
s.add_dependency(%q<jnunemaker-matchy>, ["= 0.4.0"])
|
193
194
|
s.add_dependency(%q<shoulda>, ["= 2.10.2"])
|
@@ -196,7 +197,7 @@ Gem::Specification.new do |s|
|
|
196
197
|
end
|
197
198
|
else
|
198
199
|
s.add_dependency(%q<activesupport>, [">= 2.3.4"])
|
199
|
-
s.add_dependency(%q<mongo>, ["= 0.19.
|
200
|
+
s.add_dependency(%q<mongo>, ["= 0.19.3"])
|
200
201
|
s.add_dependency(%q<jnunemaker-validatable>, ["= 1.8.3"])
|
201
202
|
s.add_dependency(%q<jnunemaker-matchy>, ["= 0.4.0"])
|
202
203
|
s.add_dependency(%q<shoulda>, ["= 2.10.2"])
|
@@ -942,7 +942,6 @@ class DocumentTest < Test::Unit::TestCase
|
|
942
942
|
setup do
|
943
943
|
class ::DocParent
|
944
944
|
include MongoMapper::Document
|
945
|
-
key :_type, String
|
946
945
|
key :name, String
|
947
946
|
end
|
948
947
|
DocParent.collection.remove
|
@@ -964,6 +963,10 @@ class DocumentTest < Test::Unit::TestCase
|
|
964
963
|
Object.send :remove_const, 'DocGrandSon' if defined?(::DocGrandSon)
|
965
964
|
end
|
966
965
|
|
966
|
+
should "automatically add _type key to store class" do
|
967
|
+
DocParent.keys.should include(:_type)
|
968
|
+
end
|
969
|
+
|
967
970
|
should "use the same collection in the subclass" do
|
968
971
|
DocDaughter.collection.name.should == DocParent.collection.name
|
969
972
|
end
|
@@ -1091,6 +1094,11 @@ class DocumentTest < Test::Unit::TestCase
|
|
1091
1094
|
}.should change { DocParent.count }.by(-2)
|
1092
1095
|
end
|
1093
1096
|
|
1097
|
+
should "set type from class and ignore _type in attributes" do
|
1098
|
+
doc = DocSon.create(:_type => 'DocDaughter', :name => 'John')
|
1099
|
+
DocParent.first.should be_instance_of(DocSon)
|
1100
|
+
end
|
1101
|
+
|
1094
1102
|
should "be able to reload parent inherited class" do
|
1095
1103
|
brian = DocParent.create(:name => 'Brian')
|
1096
1104
|
brian.name = 'B-Dawg'
|
@@ -126,7 +126,7 @@ class EmbeddedDocumentTest < Test::Unit::TestCase
|
|
126
126
|
@doc = @klass.new(:name => 'persisted doc', :pets => [@pet_klass.new(:name => 'persisted pet')])
|
127
127
|
end
|
128
128
|
|
129
|
-
|
129
|
+
should "be false if new" do
|
130
130
|
@doc.pets.first.should_not be_persisted
|
131
131
|
end
|
132
132
|
|
@@ -189,4 +189,14 @@ class EmbeddedDocumentTest < Test::Unit::TestCase
|
|
189
189
|
pet.expects(:save!)
|
190
190
|
pet.update_attributes!(attributes)
|
191
191
|
end
|
192
|
+
|
193
|
+
should "have database instance method that is equal to root document" do
|
194
|
+
person = @klass.create(:pets => [@pet_klass.new(:name => 'sparky')])
|
195
|
+
person.pets.first.database.should == person.database
|
196
|
+
end
|
197
|
+
|
198
|
+
should "have collection instance method that is equal to root document" do
|
199
|
+
person = @klass.create(:pets => [@pet_klass.new(:name => 'sparky')])
|
200
|
+
person.pets.first.collection.name.should == person.collection.name
|
201
|
+
end
|
192
202
|
end
|
@@ -31,8 +31,8 @@ class IndexingTest < Test::Unit::TestCase
|
|
31
31
|
# just checking have_index('first_name_1_last_name_-1') I'm checking
|
32
32
|
# the values of the indexes to make sure the index creation was successful
|
33
33
|
@document.collection.index_information.detect do |index|
|
34
|
-
keys = index[
|
35
|
-
keys.include?(
|
34
|
+
keys = index[0]
|
35
|
+
keys.include?('first_name_1') && keys.include?('last_name_-1')
|
36
36
|
end.should_not be_nil
|
37
37
|
end
|
38
38
|
|
data/test/models.rb
CHANGED
@@ -67,7 +67,6 @@ class Message
|
|
67
67
|
|
68
68
|
key :body, String
|
69
69
|
key :position, Integer
|
70
|
-
key :_type, String
|
71
70
|
key :room_id, ObjectId
|
72
71
|
|
73
72
|
belongs_to :room
|
@@ -94,7 +93,6 @@ end
|
|
94
93
|
class Account
|
95
94
|
include MongoMapper::Document
|
96
95
|
|
97
|
-
key :_type, String
|
98
96
|
key :room_id, ObjectId
|
99
97
|
key :last_logged_in, Time
|
100
98
|
|
@@ -158,9 +156,7 @@ end
|
|
158
156
|
class Media
|
159
157
|
include MongoMapper::EmbeddedDocument
|
160
158
|
|
161
|
-
key :_type, String
|
162
159
|
key :file, String
|
163
|
-
|
164
160
|
key :visible, Boolean
|
165
161
|
end
|
166
162
|
|
@@ -192,7 +188,6 @@ module TrModels
|
|
192
188
|
class Transport
|
193
189
|
include MongoMapper::EmbeddedDocument
|
194
190
|
|
195
|
-
key :_type, String
|
196
191
|
key :license_plate, String
|
197
192
|
key :purchased_on, Date
|
198
193
|
end
|
@@ -179,17 +179,17 @@ class EmbeddedDocumentTest < Test::Unit::TestCase
|
|
179
179
|
|
180
180
|
context "keys" do
|
181
181
|
should "be inherited" do
|
182
|
-
Grandparent.keys.keys.sort.should == ['_id', 'grandparent']
|
183
|
-
Parent.keys.keys.sort.should == ['_id', 'grandparent', 'parent']
|
184
|
-
Child.keys.keys.sort.should == ['_id', 'child', 'grandparent', 'parent']
|
182
|
+
Grandparent.keys.keys.sort.should == ['_id', '_type', 'grandparent']
|
183
|
+
Parent.keys.keys.sort.should == ['_id', '_type', 'grandparent', 'parent']
|
184
|
+
Child.keys.keys.sort.should == ['_id', '_type', 'child', 'grandparent', 'parent']
|
185
185
|
end
|
186
186
|
|
187
187
|
should "propogate to descendants if key added after class definition" do
|
188
|
-
Grandparent.key :
|
188
|
+
Grandparent.key :foo, String
|
189
189
|
|
190
|
-
Grandparent.keys.keys.sort.should == ['_id', '_type', 'grandparent']
|
191
|
-
Parent.keys.keys.sort.should == ['_id', '_type', 'grandparent', 'parent']
|
192
|
-
Child.keys.keys.sort.should == ['_id', '_type', 'child', 'grandparent', 'parent']
|
190
|
+
Grandparent.keys.keys.sort.should == ['_id', '_type', 'foo', 'grandparent']
|
191
|
+
Parent.keys.keys.sort.should == ['_id', '_type', 'foo', 'grandparent', 'parent']
|
192
|
+
Child.keys.keys.sort.should == ['_id', '_type', 'child', 'foo', 'grandparent', 'parent']
|
193
193
|
end
|
194
194
|
|
195
195
|
should "not add anonymous objects to the ancestor tree" do
|
@@ -302,8 +302,8 @@ class EmbeddedDocumentTest < Test::Unit::TestCase
|
|
302
302
|
@klass.new._type.should == 'FooBar'
|
303
303
|
end
|
304
304
|
|
305
|
-
should "
|
306
|
-
@klass.new(:_type => 'Foo')._type.should == '
|
305
|
+
should "ignore _type attribute and always use class" do
|
306
|
+
@klass.new(:_type => 'Foo')._type.should == 'FooBar'
|
307
307
|
end
|
308
308
|
end
|
309
309
|
|
@@ -115,41 +115,4 @@ class MongoMapperTest < Test::Unit::TestCase
|
|
115
115
|
MongoMapper.setup(config, 'development', :logger => logger, :passenger => true)
|
116
116
|
end
|
117
117
|
end
|
118
|
-
|
119
|
-
|
120
|
-
context "use_time_zone?" do
|
121
|
-
should "be true if Time.zone set" do
|
122
|
-
Time.zone = 'Hawaii'
|
123
|
-
MongoMapper.use_time_zone?.should be_true
|
124
|
-
Time.zone = nil
|
125
|
-
end
|
126
|
-
|
127
|
-
should "be false if Time.zone not set" do
|
128
|
-
MongoMapper.use_time_zone?.should be_false
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
context "time_class" do
|
133
|
-
should "be Time.zone if using time zones" do
|
134
|
-
Time.zone = 'Hawaii'
|
135
|
-
MongoMapper.time_class.should == Time.zone
|
136
|
-
Time.zone = nil
|
137
|
-
end
|
138
|
-
|
139
|
-
should "be Time if not using time zones" do
|
140
|
-
MongoMapper.time_class.should == Time
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
context "normalize_object_id" do
|
145
|
-
should "turn string into object id" do
|
146
|
-
id = Mongo::ObjectID.new
|
147
|
-
MongoMapper.normalize_object_id(id.to_s).should == id
|
148
|
-
end
|
149
|
-
|
150
|
-
should "leave object id alone" do
|
151
|
-
id = Mongo::ObjectID.new
|
152
|
-
MongoMapper.normalize_object_id(id).should == id
|
153
|
-
end
|
154
|
-
end
|
155
118
|
end
|
@@ -29,9 +29,9 @@ class TestRailsCompatibility < Test::Unit::TestCase
|
|
29
29
|
end
|
30
30
|
|
31
31
|
should "have column names" do
|
32
|
-
Item.column_names.sort.should == ['_id', 'for_all']
|
33
|
-
FirstItem.column_names.sort.should == ['_id', 'first_only', 'for_all']
|
34
|
-
SecondItem.column_names.sort.should == ['_id', 'for_all', 'second_only']
|
32
|
+
Item.column_names.sort.should == ['_id', '_type', 'for_all']
|
33
|
+
FirstItem.column_names.sort.should == ['_id', '_type', 'first_only', 'for_all']
|
34
|
+
SecondItem.column_names.sort.should == ['_id', '_type', 'for_all', 'second_only']
|
35
35
|
end
|
36
36
|
|
37
37
|
should "alias new to new_record?" do
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 7
|
8
|
-
-
|
9
|
-
version: 0.7.
|
8
|
+
- 3
|
9
|
+
version: 0.7.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- John Nunemaker
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-04-05 00:00:00 -04:00
|
18
18
|
default_executable: mmconsole
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -41,8 +41,8 @@ dependencies:
|
|
41
41
|
segments:
|
42
42
|
- 0
|
43
43
|
- 19
|
44
|
-
-
|
45
|
-
version: 0.19.
|
44
|
+
- 3
|
45
|
+
version: 0.19.3
|
46
46
|
type: :runtime
|
47
47
|
version_requirements: *id002
|
48
48
|
- !ruby/object:Gem::Dependency
|
@@ -160,6 +160,7 @@ files:
|
|
160
160
|
- lib/mongo_mapper/plugins/modifiers.rb
|
161
161
|
- lib/mongo_mapper/plugins/pagination.rb
|
162
162
|
- lib/mongo_mapper/plugins/pagination/proxy.rb
|
163
|
+
- lib/mongo_mapper/plugins/persistence.rb
|
163
164
|
- lib/mongo_mapper/plugins/protected.rb
|
164
165
|
- lib/mongo_mapper/plugins/rails.rb
|
165
166
|
- lib/mongo_mapper/plugins/serialization.rb
|