mongo_odm 0.2.10 → 0.2.11
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +2 -2
- data/lib/mongo_odm/core_ext/conversions.rb +6 -1
- data/lib/mongo_odm/document/attribute_methods.rb +1 -1
- data/lib/mongo_odm/document/callbacks.rb +2 -1
- data/lib/mongo_odm/document/fields.rb +2 -1
- data/lib/mongo_odm/errors.rb +12 -0
- data/lib/mongo_odm/version.rb +1 -1
- data/lib/mongo_odm.rb +2 -1
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -89,7 +89,7 @@ You can also define your own class methods that returns criteria objects, and co
|
|
89
89
|
|
90
90
|
Take a look at the Mongo Ruby driver documentation for the 'find' method to see the available options:
|
91
91
|
|
92
|
-
http://api.mongodb.org/ruby/1.
|
92
|
+
http://api.mongodb.org/ruby/1.2.4/Mongo/Collection.html#find-instance_method
|
93
93
|
|
94
94
|
= Collections
|
95
95
|
|
@@ -434,7 +434,7 @@ Use cursor methods directly on the class:
|
|
434
434
|
|
435
435
|
For now, take a look at the Mongo Ruby driver syntax:
|
436
436
|
|
437
|
-
http://api.mongodb.org/ruby/1.
|
437
|
+
http://api.mongodb.org/ruby/1.2.4/index.html
|
438
438
|
|
439
439
|
= Credits
|
440
440
|
|
@@ -45,6 +45,11 @@ class BSON::DBRef
|
|
45
45
|
def inspect
|
46
46
|
"BSON::DBRef(namespace:\"#{namespace}\", id: \"#{object_id}\")"
|
47
47
|
end
|
48
|
+
|
49
|
+
def eql?(other)
|
50
|
+
to_hash == other.to_hash
|
51
|
+
end
|
52
|
+
alias :== :eql?
|
48
53
|
end
|
49
54
|
|
50
55
|
# @private
|
@@ -205,7 +210,7 @@ end
|
|
205
210
|
|
206
211
|
# Stand-in for true/false property types.
|
207
212
|
# @private
|
208
|
-
|
213
|
+
class Boolean
|
209
214
|
def self.type_cast(value)
|
210
215
|
case value
|
211
216
|
when NilClass
|
@@ -44,7 +44,7 @@ module MongoODM
|
|
44
44
|
if respond_to?(:"#{name}=")
|
45
45
|
send(:"#{name}=", value)
|
46
46
|
else
|
47
|
-
auto_generate_attributes ? write_attribute(name, value) : raise(MongoODM::Errors::UnknownFieldError,
|
47
|
+
auto_generate_attributes ? write_attribute(name, value) : raise(MongoODM::Errors::UnknownFieldError, name, self.class)
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
@@ -14,8 +14,9 @@ module MongoODM
|
|
14
14
|
|
15
15
|
define_model_callbacks :initialize, :only => :after
|
16
16
|
define_model_callbacks :save, :destroy
|
17
|
+
define_model_callbacks :validate, :only => :before
|
17
18
|
end
|
18
|
-
|
19
|
+
|
19
20
|
module InstanceMethods
|
20
21
|
def initialize_with_callbacks(*args)
|
21
22
|
initialize_without_callbacks(*args)
|
@@ -30,7 +30,8 @@ module MongoODM
|
|
30
30
|
|
31
31
|
# @return [Object] The default value for this field if defined, or nil.
|
32
32
|
def default
|
33
|
-
if
|
33
|
+
if options.has_key?(:default)
|
34
|
+
default = options[:default]
|
34
35
|
type_cast(default.respond_to?(:call) ? default.call : default)
|
35
36
|
end
|
36
37
|
end
|
data/lib/mongo_odm/errors.rb
CHANGED
@@ -13,6 +13,18 @@ module MongoODM
|
|
13
13
|
super "can't localize field #{field_name}; it has to be declared as a Hash, was #{klass}"
|
14
14
|
end
|
15
15
|
end
|
16
|
+
|
17
|
+
class UnknownFieldError < StandardError
|
18
|
+
def initialize(field_name, klass)
|
19
|
+
super "unknown field #{field_name} on class #{klass.name}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class DocumentNotFound < StandardError
|
24
|
+
def initialize(ids, klass)
|
25
|
+
super "can't find document for class #{klass} with id(s) #{ids}"
|
26
|
+
end
|
27
|
+
end
|
16
28
|
end
|
17
29
|
|
18
30
|
end
|
data/lib/mongo_odm/version.rb
CHANGED
data/lib/mongo_odm.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'mongo'
|
4
4
|
require 'active_support'
|
5
|
+
require 'active_support/core_ext/hash'
|
5
6
|
require 'active_model'
|
6
7
|
|
7
8
|
# Contains the classes and modules related to the ODM built on top of the basic Mongo client.
|
@@ -46,7 +47,7 @@ module MongoODM
|
|
46
47
|
end
|
47
48
|
value.class.type_cast(value.to_mongo)
|
48
49
|
end
|
49
|
-
|
50
|
+
|
50
51
|
def self.dereference(value)
|
51
52
|
value.respond_to?(:dereference) ? value.dereference : value
|
52
53
|
end
|