OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / profiler / column.rb
1 module Manifest
2   module ProfilerModule
3     class Column
4       def initialize item_name, column_name, item, operators, manifest
5         @item_name = item_name
6         @column_name = column_name
7         @item = item
8         @operators = operators
9         @manifest = manifest
10         
11         @model = @item_name.classify.constantize
12         @model_attributes = @manifest.model(@item_name).attributes
13         @column_conf = @model_attributes[@column_name]
14       end
15       
16       def label view
17         @model.human_attribute_name(@column_name)
18       end
19       
20       def date?
21         case @column_conf['type']
22         when 'datetime'
23           if self.value
24             true
25           else
26             false
27           end
28         else
29           false
30         end
31       end
32       
33       def value
34         @item.attributes[@column_name]
35       end
36       
37       def disp_value view
38         if self.date?
39           view.l self.value
40         else
41           self.value
42         end
43       end
44       
45       def note?
46         if @column_conf['source']
47           case @column_conf['source']['type']
48           when 'magic_number'
49             true
50           when 'model'
51             false
52           else
53             false
54           end
55         else
56           false
57         end
58       end
59       
60       def note view
61         if self.note?
62           '(' + view.t_selected_item(@column_conf['source']['key'], self.value) + ')'
63         else
64         end
65       end
66       
67     end
68     
69   end
70 end