OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / lib / manifest / controller / action / list.rb
1 module Manifest
2   module ActionModule
3     class ActionList
4       attr :controller, :action_name, :action_manifest, 
5         :item_name, :list_name
6       def initialize controller, action_name, action_manifest
7         @controller = controller
8         @action_name = action_name
9         @action_manifest = action_manifest
10         self.set_default
11         self.init
12       end
13       
14       def set_default
15         @action_manifest['args'] ||= {}
16         @action_manifest['args']['item_name'] ||= self.controller.item_name
17       end
18       
19       def init
20         @args = @action_manifest['args']
21         @item_name = @args['item_name']
22         raise "undefined list_name for controllers > #{self.controller_name} > actions > #{@action_name} > args\n" unless @args['list_name']
23         @list_name = @args['list_name']
24       end
25       
26       def controller_name
27         @controller.controller_name
28       end
29       
30       def controller_manifest
31         @controller.controller_manifest
32       end
33       
34       def list params, operators
35         Manifest.list_managers[@item_name].open(@list_name)
36       end
37       
38       def ready params, operators
39         @items = self.list.items params, operators
40       end
41       
42       def exec
43       end
44       
45       def render
46         format.html {
47           @filer = self.list.filer
48           render :template => 'system/filer', :locals => {
49             :filer => @filer
50           }
51         }
52       end
53       
54       def cook params, operators
55         self.ready params, operators
56         self.exec
57         self.render
58       end
59       
60     end
61     
62   end
63 end