OSDN Git Service

fix manifest
[pettanr/pettanr.git] / lib / manifest / profiler / column.rb
diff --git a/lib/manifest/profiler/column.rb b/lib/manifest/profiler/column.rb
new file mode 100644 (file)
index 0000000..4ea7b91
--- /dev/null
@@ -0,0 +1,70 @@
+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