OSDN Git Service

1d20a45d4c6e9aca4f8703f7e10736bf4b062f74
[pettanr/pettanr.git] / lib / manifest / local / view / filer / body / file_body / file_item / symbol / default / face / face.rb
1 module Manifest
2   module View
3     module FilerModule
4       module BodyModule
5         module FileBodyModule
6           module FileItemModule
7             module SymbolItemColumnModule
8               module DefaultModule
9                 module FaceModule
10                   class BaseFace
11                     attr :default_symbol, :face_manifest, :item
12                     def initialize default_symbol, face_manifest, item
13                       @default_symbol = default_symbol
14                       @face_manifest = face_manifest
15                       @item = item
16                     end
17                     
18                     def filer
19                       @default_symbol.filer
20                     end
21                     
22                     def manifest
23                       self.filer.manifest
24                     end
25                     
26                     def item_name
27                       self.filer.item_name
28                     end
29                     
30                     def template_dir
31                       self.filer.template_dir + "symbol_face/"
32                     end
33                     
34                     def template_file_name
35                       raise "undefined template_file_name\n"
36                     end
37                     
38                     def template_name
39                       self.template_dir + self.template_file_name
40                     end
41                     
42                   end
43                   
44                   class ImageFace < BaseFace
45                     def template_file_name
46                       'image'
47                     end
48                     
49                     def url
50                       @face_manifest.url
51                     end
52                     
53                     def tag_opt
54                       {:src => self.url, :width => Manifest.manifest.magic_numbers['thumbnail_width'], :height => Manifest.manifest.magic_numbers['thumbnail_height']}
55                     end
56                     
57                   end
58                   
59                   class PictureFace < BaseFace
60                     def template_file_name
61                       'picture'
62                     end
63                     
64                     def method_name
65                       @face_manifest.method_name
66                     end
67                     
68                     def tag_opt
69                       if @item.methods(true).include?(self.method_name.to_sym)
70                         @item.__send__ self.method_name
71                       else
72                         {:src => '/images/error.png', :width => Manifest.manifest.magic_numbers['thumbnail_width'], :height => Manifest.manifest.magic_numbers['thumbnail_height']}
73                       end
74                     end
75                     
76                   end
77                   
78                 end
79               end
80             end
81           end
82         end
83       end
84     end
85   end
86 end