OSDN Git Service

fix Manifest
[pettanr/pettanr.git] / lib / manifest / controller.rb
index 8377e29..63d8f66 100644 (file)
@@ -1,5 +1,4 @@
-require "manifest/controller/list"
-require "manifest/controller/show"
+require_dependency "manifest/controller/action"
 module Manifest
   class Controller
     include ControllerModule
@@ -13,7 +12,6 @@ module Manifest
     end
     
     attr :manifest, :controller_name, :controller_manifest, :item_name, :actions
-    @@types = {'list' => ActionList, 'show' => ActionShow}
     def initialize manifest, controller_name, controller_manifest
       @manifest = manifest
       @controller_name = controller_name
@@ -31,8 +29,7 @@ module Manifest
       @item_name = @controller_manifest['item_name']
       @actions = {}
       @controller_manifest['actions'].each {|action_name, action_manifest|
-        raise "undefined class for controllers > #{@controller_name} > actions > #{action_name} > type >  #{action_manifest['type']}\n" unless @@types[action_manifest['type']]
-        @actions[action_name] = @@types[action_manifest['type']].new(self, action_name, action_manifest)
+        @actions[action_name] = ActionFactory.factory self, action_name, action_manifest
       }
     end