OSDN Git Service

9814ee41354409fd8bb5b39f1aabcf4c60598f88
[pettanr/pettanr.git] / lib / manifest / controller / action.rb
1 require_dependency "manifest/controller/action/base"
2 require_dependency "manifest/controller/action/list"
3 require_dependency "manifest/controller/action/show"
4 require_dependency "manifest/controller/action/count"
5 module Manifest
6   module ControllerModule
7     class ActionFactory
8       include ActionModule
9       @@types = {
10         'list' => ActionList, 'show' => ActionShow, 'count' => ActionCount
11       }
12       def self.factory controller, action_name, my_manifest
13         my_manifest['type'] ||= 'list'
14         type = my_manifest['type']
15         raise "undefined type for controllers > #{controller.controller_name} > action > #{action_name}\n" unless type
16         my_class = @@types[type]
17         raise "undefined class for controllers > #{controller.controller_name} > action > #{action_name} > #{type}\n" unless my_class
18         my_class.new(controller, action_name, my_manifest)
19       end
20       
21     end
22     
23   end
24 end