OSDN Git Service

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