Module: MongoModel::Attributes
- Extended by:
- ActiveSupport::Concern
- Included in:
- EmbeddedDocument
- Defined in:
- lib/mongomodel.rb,
lib/mongomodel/attributes/mongo.rb,
lib/mongomodel/attributes/store.rb,
lib/mongomodel/concerns/attributes.rb,
lib/mongomodel/attributes/typecasting.rb
Defined Under Namespace
Modules: ClassMethods, Mongo, Typecasting
Classes: Store
Instance Method Summary
(collapse)
Instance Method Details
- (Object) assign_attributes(attrs, options = {})
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/mongomodel/concerns/attributes.rb', line 16
def assign_attributes(attrs, options={})
return unless attrs
attrs.each do |attr, value|
if respond_to?("#{attr}=")
send("#{attr}=", value)
else
write_attribute(attr, value)
end
end
end
|
- (Object) attributes
12
13
14
|
# File 'lib/mongomodel/concerns/attributes.rb', line 12
def attributes
@attributes ||= Attributes::Store.new(self)
end
|
- (Object) attributes=(attrs)
28
29
30
|
# File 'lib/mongomodel/concerns/attributes.rb', line 28
def attributes=(attrs)
assign_attributes(attrs)
end
|
- (Object) dup
Returns duplicated record with unfreezed attributes.
41
42
43
44
45
|
# File 'lib/mongomodel/concerns/attributes.rb', line 41
def dup
obj = super
obj.instance_variable_set('@attributes', instance_variable_get('@attributes').dup)
obj
end
|
- (Object) embedded_documents
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/mongomodel/concerns/attributes.rb', line 51
def embedded_documents
docs = []
docs.concat attributes.values.select { |attr| attr.is_a?(EmbeddedDocument) }
attributes.values.select { |attr| attr.is_a?(Collection) }.each do |collection|
docs.concat collection.embedded_documents
end
attributes.values.select { |attr| attr.is_a?(Map) && attr.to <= EmbeddedDocument }.each do |map|
docs.concat map.values
end
docs
end
|
- (Object) freeze
32
33
34
|
# File 'lib/mongomodel/concerns/attributes.rb', line 32
def freeze
attributes.freeze; self
end
|
36
37
38
|
# File 'lib/mongomodel/concerns/attributes.rb', line 36
def frozen?
attributes.frozen?
end
|
- (Object) initialize(attrs = {}, options = {}) {|_self| ... }
7
8
9
10
|
# File 'lib/mongomodel/concerns/attributes.rb', line 7
def initialize(attrs={}, options={})
assign_attributes(attrs || {}, options)
yield self if block_given?
end
|
- (Object) to_mongo
47
48
49
|
# File 'lib/mongomodel/concerns/attributes.rb', line 47
def to_mongo
attributes.to_mongo
end
|