-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