OSDN Git Service

fix form
[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 require_dependency "manifest/controller/action/new"
6 require_dependency "manifest/controller/action/edit"
7 module Manifest
8   module ControllerModule
9     class ActionFactory
10       include ActionModule
11       @@types = {
12         'list' => ActionList, 'show' => ActionShow, 'count' => ActionCount, 
13         'new' => ActionNew, 'edit' => ActionEdit
14       }
15       def self.factory controller, action_name, my_manifest
16         my_manifest['type'] ||= 'list'
17         type = my_manifest['type']
18         raise "undefined type for controllers > #{controller.controller_name} > action > #{action_name}\n" unless type
19         my_class = @@types[type]
20         raise "undefined class for controllers > #{controller.controller_name} > action > #{action_name} > #{type}\n" unless my_class
21         my_class.new(controller, action_name, my_manifest)
22       end
23       
24     end
25     
26   end
27 end