OSDN Git Service

fix local_manifest
[pettanr/pettanr.git] / lib / manifest / model / peta.rb
index ec46382..c23fb47 100644 (file)
@@ -1,27 +1,21 @@
-require_dependency "manifest/model/peta/base"
-require_dependency "manifest/model/peta/item"
-require_dependency "manifest/model/peta/owner"
-require_dependency "manifest/model/peta/content"
-require_dependency "manifest/model/peta/root"
-require_dependency "manifest/model/peta/element"
-require_dependency "manifest/model/peta/binder"
-require_dependency "manifest/model/peta/leaf"
+ManifestBase.require_modules "manifest/model/peta/", 
+  %w|base item owner content root element binder leaf|
+
 module Manifest
   module ModelModule
-    class PetaFactory
+    class PetaFactory < ManifestBase::Factory
       include PetaModule
-      @@types = {
-        'item' => ItemPeta, 'owner' => OwnerPeta, 'content' => ContentPeta, 
-        'root' => RootPeta, 'element' => ElementPeta, 
-        'binder' => BinderPeta, 'leaf' => LeafPeta
-      }
-      def self.factory model, my_manifest
-        my_manifest['type'] ||= 'item'
-        type = my_manifest['type']
-        raise "undefined type for models > #{model.model_name} > peta \n" unless type
-        my_class = @@types[type]
-        raise "undefined class for models > #{model.fmodel_name} > peta > #{type}\n" unless my_class
-        my_class.new(model, my_manifest)
+      
+      def self.types
+        {
+          'item' => ItemPeta, 'owner' => OwnerPeta, 'content' => ContentPeta, 
+          'root' => RootPeta, 'element' => ElementPeta, 
+          'binder' => BinderPeta, 'leaf' => LeafPeta
+        }
+      end
+      
+      def self.default_type
+        'item'
       end
       
     end