3 class ControllerManager
6 def initialize action_name, item_name, operators, list, conf, manifest
7 @action_name = action_name
16 @items ||= @list.items
20 paginate = opt ? @list.paginate(opt) : @list.paginate
21 @filer ||= @manifest.filer_managers[@item_name].open(@item_name, @items, @operators, paginate)
27 def initialize action_name, item_name, conf, manifest
28 @action_name = action_name
29 @item_name = item_name
37 attr :controller_manifest, :item_name, :manifest, :controller_conf,
39 @@types = {'list' => ActionList, 'show' => ActionShow}
40 def initialize controller_manifest
41 @controller_manifest = controller_manifest
42 @item_name = @controller_manifest.item_name
43 @manifest = @controller_manifest.manifest
44 @controller_conf = @controller_manifest.conf
46 @controller_manifest.actions.each {|action_name, conf|
48 @actions[action_name] = @@types[type]
52 def open action_name, params, operators
53 name = if @controller_manifest.actions[action_name]['item_name']
54 @controller_manifest.actions[action_name]['item_name']
58 list_name = @controller_manifest.list_name action_name
59 @list = @manifest.list_managers[name].open(list_name, params[:page], params[:page_size], operators)
60 raise "undefined controller for #{@item_name}::#{action_name}\nconf:#{@controller_conf}\n" unless @actions[action_name]
61 @actions[action_name].new action_name, name, operators, @list, @controller_conf, @manifest