OSDN Git Service

fix edit extend_item
[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         if self.item.extend_column?(@column_name)
16           
17         else
18           self.item.attributes[@column_name]
19         end
20       end
21       
22       def note
23       end
24       
25       def date?
26         case model_attribute_manifest.type
27         when 'datetime'
28           if self.value
29             true
30           else
31             false
32           end
33         else
34           false
35         end
36       end
37       
38       def note?
39         if self.model_attribute_source_manifest
40           case self.model_attribute_source_manifest.type
41           when 'magic_number'
42             true
43           when 'model'
44             false
45           else
46             false
47           end
48         else
49           false
50         end
51       end
52       
53       def select_item_name
54         self.model_attribute_source_manifest.select_item_name
55       end
56       
57       def item
58         @profiler.item
59       end
60       
61       def model_manifest
62         ::Manifest.manifest.models[@profiler.item_name]
63       end
64       
65       def model_attribute_manifest
66         self.model_manifest.attributes[@column_name]
67       end
68       
69       def model_attribute_source_manifest
70         self.model_attribute_manifest.source
71       end
72       
73       def template_dir 
74         @profiler.template_dir
75       end
76       
77       def template_file_name
78         "column"
79       end
80       
81       def template_name
82         self.template_dir + self.template_file_name
83       end
84       
85       def value_template_dir 
86         @profiler.template_dir + "column_value/"
87       end
88       
89       def value_template_file_name
90         if self.date?
91           'date'
92         else
93           'default'
94         end
95       end
96       
97       def value_template_name
98         self.value_template_dir + self.value_template_file_name
99       end
100       
101       def note_template_dir 
102         @profiler.template_dir + "column_note/"
103       end
104       
105       def note_template_file_name
106         if self.note?
107           'default'
108         else
109           'none'
110         end
111       end
112       
113       def note_template_name
114         self.note_template_dir + self.note_template_file_name
115       end
116       
117     end
118   end
119 end
120