OSDN Git Service

refactoring manifest
[pettanr/pettanr.git] / lib / manifest / model / association.rb
index f4886fc..e81624b 100644 (file)
@@ -3,44 +3,36 @@ require_dependency "manifest/model/association/has_many"
 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