OSDN Git Service

separate manifest
[pettanr/pettanr.git] / lib / locmare / profiler / column.rb
diff --git a/lib/locmare/profiler/column.rb b/lib/locmare/profiler/column.rb
new file mode 100644 (file)
index 0000000..8e33c12
--- /dev/null
@@ -0,0 +1,116 @@
+module Locmare
+  module ProfilerModule
+    class Column
+      attr :profiler, :column_name
+      def initialize profiler, column_name
+        @profiler = profiler
+        @column_name = column_name
+      end
+      
+      def label
+        self.item.class.human_attribute_name(@column_name)
+      end
+      
+      def value
+        self.item.attributes[@column_name]
+      end
+      
+      def note
+      end
+      
+      def date?
+        case model_attribute_manifest.type
+        when 'datetime'
+          if self.value
+            true
+          else
+            false
+          end
+        else
+          false
+        end
+      end
+      
+      def note?
+        if self.model_attribute_source_manifest
+          case self.model_attribute_source_manifest.type
+          when 'magic_number'
+            true
+          when 'model'
+            false
+          else
+            false
+          end
+        else
+          false
+        end
+      end
+      
+      def select_item_name
+        self.model_attribute_source_manifest.select_item_name
+      end
+      
+      def item
+        @profiler.item
+      end
+      
+      def model_manifest
+        ::Manifest.manifest.models[@profiler.item_name]
+      end
+      
+      def model_attribute_manifest
+        self.model_manifest.attributes[@column_name]
+      end
+      
+      def model_attribute_source_manifest
+        self.model_attribute_manifest.source
+      end
+      
+      def template_dir 
+        @profiler.template_dir
+      end
+      
+      def template_file_name
+        "column"
+      end
+      
+      def template_name
+        self.template_dir + self.template_file_name
+      end
+      
+      def value_template_dir 
+        @profiler.template_dir + "column_value/"
+      end
+      
+      def value_template_file_name
+        if self.date?
+          'date'
+        else
+          'default'
+        end
+      end
+      
+      def value_template_name
+        self.value_template_dir + self.value_template_file_name
+      end
+      
+      def note_template_dir 
+        @profiler.template_dir + "column_note/"
+      end
+      
+      def note_template_file_name
+        if self.note?
+          'default'
+        else
+          'none'
+        end
+      end
+      
+      def note_template_name
+        self.note_template_dir + self.note_template_file_name
+      end
+      
+    end
+  end
+end
+