OSDN Git Service

refactoring manifest
[pettanr/pettanr.git] / lib / manifest / controller / action.rb
index 227dac8..ff38680 100644 (file)
@@ -1,24 +1,16 @@
-require_dependency "manifest/controller/action/base"
-require_dependency "manifest/controller/action/list"
-require_dependency "manifest/controller/action/show"
-require_dependency "manifest/controller/action/count"
-require_dependency "manifest/controller/action/new"
-require_dependency "manifest/controller/action/edit"
+ManifestBase.require_modules "manifest/controller/action/", 
+  %w|base list show count new edit|
+
 module Manifest
   module ControllerModule
-    class ActionFactory
+    class ActionFactory < ManifestBase::Factory
       include ActionModule
-      @@types = {
-        'list' => ActionList, 'show' => ActionShow, 'count' => ActionCount, 
-        'new' => ActionNew, 'edit' => ActionEdit
-      }
-      def self.factory controller, action_name, my_manifest
-        my_manifest['type'] ||= 'list'
-        type = my_manifest['type']
-        raise "undefined type for controllers > #{controller.controller_name} > action > #{action_name}\n" unless type
-        my_class = @@types[type]
-        raise "undefined class for controllers > #{controller.controller_name} > action > #{action_name} > #{type}\n" unless my_class
-        my_class.new(controller, action_name, my_manifest)
+      
+      def self.types
+        {
+          'list' => ActionList, 'show' => ActionShow, 'count' => ActionCount, 
+          'new' => ActionNew, 'edit' => ActionEdit
+        }
       end
       
     end