--- /dev/null
+module Manifest
+ module ProfilerModule
+ class Column
+ def initialize item_name, column_name, item, operators, manifest
+ @item_name = item_name
+ @column_name = column_name
+ @item = item
+ @operators = operators
+ @manifest = manifest
+
+ @model = @item_name.classify.constantize
+ @model_attributes = @manifest.model(@item_name).attributes
+ @column_conf = @model_attributes[@column_name]
+ end
+
+ def label view
+ @model.human_attribute_name(@column_name)
+ end
+
+ def date?
+ case @column_conf['type']
+ when 'datetime'
+ if self.value
+ true
+ else
+ false
+ end
+ else
+ false
+ end
+ end
+
+ def value
+ @item.attributes[@column_name]
+ end
+
+ def disp_value view
+ if self.date?
+ view.l self.value
+ else
+ self.value
+ end
+ end
+
+ def note?
+ if @column_conf['source']
+ case @column_conf['source']['type']
+ when 'magic_number'
+ true
+ when 'model'
+ false
+ else
+ false
+ end
+ else
+ false
+ end
+ end
+
+ def note view
+ if self.note?
+ '(' + view.t_selected_item(@column_conf['source']['key'], self.value) + ')'
+ else
+ end
+ end
+
+ end
+
+ end
+end