Sha256: b0d6b0df482cf19ac594415e70b3d19e153200e9a12cd4e2d4534a671e149093
Contents?: true
Size: 1.22 KB
Versions: 1
Compression:
Stored size: 1.22 KB
Contents
module MongoMapper module Associations class Base attr_reader :type, :name, :options def initialize(type, name, options = {}) @options = options @type = type @name = name end def klass @klass ||= class_name.constantize end def class_name @class_name ||= begin if cn = options[:class_name] cn elsif many? name.to_s.singularize.camelize else name.to_s.camelize end end end def many? @many_type ||= @type == :many end def polymorphic? @options[:polymorphic] end def type_key_name @type_key_name ||= many? ? '_type' : "#{name}_type" end def ivar @ivar ||= "@_#{name}" end def proxy_class @proxy_class ||= begin if many? return HasManyProxy unless self.klass.embeddable? polymorphic? ? PolymorphicHasManyEmbeddedProxy : HasManyEmbeddedProxy else polymorphic? ? PolymorphicBelongsToProxy : BelongsToProxy end end # end begin end # end proxy_class end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fcoury-mongomapper-0.4.0 | lib/mongomapper/associations/base.rb |