OSDN Git Service

9a7dc0ad751d63fb3378bfefdeaeaaba49d1c0a0
[pettanr/pettanr.git] / lib / manifest / local / view / profiler / column.rb
1 module Manifest
2   module View
3     module ProfilerModule
4       class Column
5         attr :profiler, :column_name
6         def initialize profiler, column_name
7           @profiler = profiler
8           @column_name = column_name
9         end
10         
11         def label
12           self.item.class.human_attribute_name(@column_name)
13         end
14         
15         def value
16           self.item.attributes[@column_name]
17         end
18         
19         def note
20         end
21         
22         def date?
23           case model_attribute_manifest.type
24           when 'datetime'
25             if self.value
26               true
27             else
28               false
29             end
30           else
31             false
32           end
33         end
34         
35         def note?
36           if self.model_attribute_source_manifest
37             case self.model_attribute_source_manifest.type
38             when 'magic_number'
39               true
40             when 'model'
41               false
42             else
43               false
44             end
45           else
46             false
47           end
48         end
49         
50         def select_item_name
51           self.model_attribute_source_manifest.select_item_name
52         end
53         
54         def item
55           @profiler.item
56         end
57         
58         def model_manifest
59           ::Manifest.manifest.models[@profiler.item_name]
60         end
61         
62         def model_attribute_manifest
63           self.model_manifest.attributes[@column_name]
64         end
65         
66         def model_attribute_source_manifest
67           self.model_attribute_manifest.source
68         end
69         
70         def template_dir 
71           @profiler.template_dir
72         end
73         
74         def template_file_name
75           "column"
76         end
77         
78         def template_name
79           self.template_dir + self.template_file_name
80         end
81         
82         def value_template_dir 
83           @profiler.template_dir + "column_value/"
84         end
85         
86         def value_template_file_name
87           if self.date?
88             'date'
89           else
90             'default'
91           end
92         end
93         
94         def value_template_name
95           self.value_template_dir + self.value_template_file_name
96         end
97         
98         def note_template_dir 
99           @profiler.template_dir + "column_note/"
100         end
101         
102         def note_template_file_name
103           if self.note?
104             'default'
105           else
106             'none'
107           end
108         end
109         
110         def note_template_name
111           self.note_template_dir + self.note_template_file_name
112         end
113         
114       end
115     end
116   end
117 end
118