OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / filer / symbol / default / link / link.rb
1 module Manifest
2   module FilerModule
3     module SymbolModule
4       module DefaultModule
5         module LinkModule
6           class BaseLink
7             attr :symbol, :link_manifest, :type
8             
9             def initialize symbol, link_manifest
10               @symbol = symbol
11               @link_manifest = link_manifest
12               self.set_default
13               self.init
14             end
15             
16             def set_default
17               @link_manifest['args'] ||= {}
18             end
19             
20             def init
21               @type = @link_manifest['type']
22               @args = @link_manifest['args']
23             end
24             
25             def filer
26               @symbol.filer
27             end
28             
29           end
30           
31           class ActionLink < BaseLink
32             attr  :action_name
33             
34             def set_default
35               super
36               @link_manifest['args']['action_name'] ||= 'show'
37             end
38             
39             def init
40               super
41               @action_name = @args['action_name']
42             end
43             
44             def action_path
45               a = @action_name == 'show' ? '' : @action_name + '/'
46               '/' + self.filer.item_class.path_name + '/' + a
47             end
48             
49           end
50           
51           class NoneLink < BaseLink
52             
53             def set_default
54               super
55             end
56             
57             def init
58               super
59             end
60             
61           end
62           
63           class UrlColumnLink < BaseLink
64             attr  :column_name
65             
66             def set_default
67               super
68               @link_manifest['args']['column_name'] ||= 'url'
69             end
70             
71             def init
72               super
73               @column_name = @args['column_name']
74             end
75             
76           end
77           
78         end
79       end
80     end
81   end
82 end