require_dependency "manifest/model/association/has_one"
module Manifest
module ModelModule
- class Association
+ class Association < ManifestBase::Values
include AssociationModule
- attr :model, :association_manifest,
- :belongs_to, :has_many, :has_one
- def initialize model, association_manifest
- @model = model
- @association_manifest = association_manifest
- self.set_default
- self.init
- end
+
+ attr :belongs_to, :has_many, :has_one
def set_default
- @association_manifest['belongs_to'] ||= {}
- @association_manifest['has_many'] ||= {}
- @association_manifest['has_one'] ||= {}
+ super
+ @args['belongs_to'] ||= {}
+ @args['has_many'] ||= {}
+ @args['has_one'] ||= {}
end
def init
+ super
@belongs_to = {}
@has_many = {}
@has_one = {}
- @association_manifest['belongs_to'].each {|belongs_to_name, belongs_to_manifest|
- @belongs_to[belongs_to_name] = BelongsTo.new(self, belongs_to_name, belongs_to_manifest)
+ @args['belongs_to'].each {|name, json|
+ @belongs_to[name] = BelongsTo.new(self, name, json)
}
- @association_manifest['has_many'].each {|has_many_name, has_many_manifest|
- @has_many[has_many_name] = HasMany.new(self, has_many_name, has_many_manifest)
+ @args['has_many'].each {|name, json|
+ @has_many[name] = HasMany.new(self, name, json)
}
- @association_manifest['has_one'].each {|has_one_name, has_one_manifest|
- @has_one[has_one_name] = HasOne.new(self, has_one_name, has_one_manifest)
+ @args['has_one'].each {|name, json|
+ @has_one[name] = HasOne.new(self, name, json)
}
end
def model_name
- @model.model_name
- end
-
- def model_manifest
- @model.model_manifest
+ @parent.name
end
def child_element_name child_model