OSDN Git Service

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