OSDN Git Service

fix manifest list_group tree
[pettanr/pettanr.git] / lib / manifest / controller.rb
1 require_dependency "manifest/controller/action"
2 module Manifest
3   class Controller
4     include ControllerModule
5     def self.manager manifest, my_manifests
6       controllers = {}
7       my_manifests.each {|controller_name, controller_manifest|
8         controllers[controller_name] = self.new(manifest, controller_name, controller_manifest)
9       }
10       controllers
11     end
12     
13     attr :manifest, :controller_name, :controller_manifest, :item_name, :actions
14     def initialize manifest, controller_name, controller_manifest
15       @manifest = manifest
16       @controller_name = controller_name
17       @controller_manifest = controller_manifest
18       self.set_default
19       self.init
20     end
21     
22     def set_default
23       @controller_manifest['item_name'] ||= ::Manifest.singularize(@controller_name)
24       @controller_manifest['actions'] ||= {}
25     end
26     
27     def init
28       @item_name = @controller_manifest['item_name']
29       @actions = {}
30       @controller_manifest['actions'].each {|action_name, action_manifest|
31         @actions[action_name] = ActionFactory.factory self, action_name, action_manifest
32       }
33     end
34     
35   end
36 end