OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / local / view / filer / body / file_body / file_item / caption / default / link / link.rb
1 module Manifest
2   module View
3     module FilerModule
4       module BodyModule
5         module FileBodyModule
6           module FileItemModule
7             module CaptionItemColumnModule
8               module DefaultModule
9                 module LinkModule
10                   class BaseLink
11                     attr :default_caption, :link_manifest, :item
12                     def initialize default_caption, link_manifest, item
13                       @default_caption = default_caption
14                       @link_manifest = link_manifest
15                       @item = item
16                     end
17                     
18                     def url
19                       raise "undefined url\n"
20                     end
21                     
22                   end
23                   
24                   class ActionLink < BaseLink
25                     
26                     def url
27                       @link_manifest.action_path + @item.id.to_s
28                     end
29                     
30                   end
31                   
32                   class NoneLink < BaseLink
33                     
34                     def url
35                       nil
36                     end
37                     
38                   end
39                   
40                   class UrlColumnLink < BaseLink
41                     
42                     def url
43                       @item.attributes[@link_manifest.column_name]
44                     end
45                     
46                   end
47                   
48                 end
49               end
50             end
51           end
52         end
53       end
54     end
55   end
56 end