lib/mongomodel/concerns/associations.rb in mongomodel-0.5.5 vs lib/mongomodel/concerns/associations.rb in mongomodel-0.5.6
- old
+ new
@@ -1,38 +1,38 @@
module MongoModel
module Associations
extend ActiveSupport::Concern
-
+
def associations
@_associations ||= self.class.associations.inject({}) do |result, (name, association)|
result[name] = association.for(self)
result
end
end
-
+
module ClassMethods
def associations
@_associations ||= {}
end
-
+
def associations=(associations)
@_associations = associations
end
-
+
def belongs_to(name, options={})
associations[name] = create_association(BelongsTo, name, options)
end
-
+
def has_many(name, options={})
associations[name] = create_association(has_many_type(options), name, options)
end
-
+
def inherited(subclass)
super
subclass.associations = associations.dup
end
-
+
private
def has_many_type(options)
case options[:by]
when :ids
HasManyByIds
@@ -40,10 +40,10 @@
HasManyByForeignKey
else
ancestors.include?(Document) ? HasManyByForeignKey : HasManyByIds
end
end
-
+
def create_association(type, name, options={})
type.new(self, name, options).define!
end
end
end