<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -2,6 +2,31 @@ module ActiveWarehouse #:nodoc:
   module Report #:nodoc:
     # Base module for reports.
     module AbstractReport
+      attr_accessor :title
+      attr_accessor :cube_name
+      attr_accessor :column_dimension_name
+      attr_accessor :column_hierarchy
+      
+      attr_accessor :column_constraints
+      def column_constraints #:nodoc:
+        @column_constraints ||= []
+      end
+      
+      attr_accessor :column_stage
+      attr_accessor :column_param_prefix
+
+      attr_accessor :row_dimension_name
+      attr_accessor :row_hierarchy
+      
+      attr_accessor :row_constraints
+      def row_constraints #:nodoc:
+        @row_constraints ||= []
+      end
+      
+      attr_accessor :row_stage
+      attr_accessor :row_param_prefix
+
+      attr_accessor :fact_attributes
       
       # Array of parameters which will be passed
       attr_accessor :pass_params
@@ -19,17 +44,16 @@ module ActiveWarehouse #:nodoc:
 
       # Set the cube name
       def cube_name=(name)
-        write_attribute(:cube_name, name)
+        @cube_name = name
         @cube = nil
       end
 
       # Get the current cube instance
       def cube
-        if @cube.nil?
+        @cube ||= begin
           cube_class = ActiveWarehouse::Cube.class_name(self.cube_name).constantize
-          @cube = cube_class.new
+          cube_class.new
         end
-        @cube
       end
       
       # Get the fact class
@@ -45,7 +69,7 @@ module ActiveWarehouse #:nodoc:
       # Get the column hierarchy. Uses the first hierarchy in the column 
       # dimension if not specified
       def column_hierarchy
-        ch = read_attribute(:column_hierarchy)
+        ch = @column_hierarchy
         if ch.nil? || ch == 'NULL'
           column_dimension_class.hierarchies.first
         else
@@ -55,7 +79,7 @@ module ActiveWarehouse #:nodoc:
       
       # Get the column prefix. Returns 'c' if not specified.
       def column_param_prefix
-        read_attribute(:column_param_prefix) || 'c'
+        @column_param_prefix ||= 'c'
       end
 
       # Get the row dimension class
@@ -66,22 +90,21 @@ module ActiveWarehouse #:nodoc:
       # Get the row hierarchy. Uses the first hierarchy in the row dimension if
       # not specified
       def row_hierarchy
-        read_attribute(:row_hierarchy) || row_dimension_class.hierarchies.first
+        @row_hierarchy ||= row_dimension_class.hierarchies.first
       end
       
       # Get the row parameter prefix. Returns 'r' if not specified.
       def row_param_prefix
-        read_attribute(:row_param_prefix) || 'r'
+        @row_param_prefix ||= 'r'
       end
       
       # Get the list of displayed fact attributes. If this value is not 
       # specified then all aggregate and calculated fields will be displayed
       def fact_attributes
-        return read_attribute(:fact_attributes) if read_attribute(:fact_attributes)
-        fa = []
-        fact_class.aggregate_fields.each { |field| fa &lt;&lt; field }
-        fact_class.calculated_fields.each { |field| fa &lt;&lt; field }
-        fa
+        @fact_attributes ||= returning Array.new do |fa|
+          fact_class.aggregate_fields.each { |field| fa &lt;&lt; field }
+          fact_class.calculated_fields.each { |field| fa &lt;&lt; field }
+        end
       end
       
       def column_filters
@@ -96,54 +119,6 @@ module ActiveWarehouse #:nodoc:
         @pass_params ||= []
       end
       
-      protected
-      # Callback which is invoked on each object returned from a call to the object's find method.
-      def after_find
-        from_storage
-      end
-      
-      # Converts values for all columns which can store symbol values into strings. This is used to store 
-      # the data in the database as a string rather than a YAML representation
-      def to_storage
-        symbol_attributes.each do |name|
-          self[name] = self[name].to_s if self[name]
-        end
-        list_attributes.each do |name|
-          self[name] = self[name].join(',') if self[name]
-        end
-        symbolized_list_attributes.each do |name|
-          self[name] = self[name].join(',') if self[name]
-        end
-      end
-      
-      # Converts values for all columns which store strings in the database to symbols.
-      def from_storage
-        symbol_attributes.each do |name|
-          self[name] = self[name].to_sym if self[name]
-        end
-        list_attributes.each do |name|
-          self[name] = self[name].split(/,/) if self[name]
-        end
-        symbolized_list_attributes.each do |name|
-          self[name] = self[name].split(/,/).collect { |v| v.to_sym } if self[name]
-        end
-      end
-      
-      # Attributes which should contain a symbol
-      def symbol_attributes
-        %w(cube_name column_dimension_name column_hierarchy row_dimension_name row_hierarchy)
-      end
-      
-      # Attributes which should contain a list of strings
-      def list_attributes
-        %w(column_constraints row_constraints)
-      end
-      
-      # Attributes which should contain a list of symbols
-      def symbolized_list_attributes
-        %w(fact_attributes)
-      end
-      
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/active_warehouse/report/abstract_report.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,7 @@
 module ActiveWarehouse #:nodoc:
   module Report #:nodoc:
-    class ChartReport &lt; ActiveRecord::Base #:nodoc:
+    class ChartReport #:nodoc:
       include AbstractReport
-      before_save :to_storage
-      after_save :from_storage
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/active_warehouse/report/chart_report.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,21 +1,24 @@
-module ActiveWarehouse
-	module Report
-
-		class DataCell
-			
-			attr_accessor :column_dimension_value, :row_dimension_value, :fact_attribute, :raw_value, :value
-			
-			def initialize(column_dimension_value, row_dimension_value, fact_attribute, raw_value, value)
-				@column_dimension_value = column_dimension_value 
-				@row_dimension_value = row_dimension_value
-				@fact_attribute = fact_attribute 
-				@raw_value = raw_value
-				@value = value
-			end
-			
-			def key
-				&quot;#{column_dimension_value}_#{fact_attribute.label}&quot;.gsub(' ', '_').downcase
-			end			
-		end
-	end
+module ActiveWarehouse #:nodoc: 
+  module Report #:nodoc:
+    class DataCell
+      
+      attr_accessor :column_dimension_value
+      attr_accessor :row_dimension_value
+      attr_accessor :fact_attribute
+      attr_accessor :raw_value
+      attr_accessor :value
+      
+      def initialize(column_dimension_value, row_dimension_value, fact_attribute, raw_value, value)
+        @column_dimension_value = column_dimension_value 
+        @row_dimension_value = row_dimension_value
+        @fact_attribute = fact_attribute 
+        @raw_value = raw_value
+        @value = value
+      end
+      
+      def key
+        &quot;#{column_dimension_value}_#{fact_attribute.label}&quot;.gsub(' ', '_').downcase
+      end     
+    end
+  end
 end
\ No newline at end of file</diff>
      <filename>lib/active_warehouse/report/data_cell.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,19 +1,20 @@
-module ActiveWarehouse
-	module Report
-
-		class DataColumn
-			
-			attr_accessor :dimension_value, :fact_attribute, :label
-			
-			def initialize(label, dimension_value, fact_attribute)
-				@label = label
-				@dimension_value = dimension_value
-				@fact_attribute = fact_attribute
-			end
-			
-			def key
-				&quot;#{dimension_value}_#{fact_attribute.label}&quot;.gsub(' ', '_').downcase
-			end
-		end
-	end
+module ActiveWarehouse #:nodoc:
+  module Report #:nodoc:
+    class DataColumn
+      
+      attr_accessor :dimension_value
+      attr_accessor :fact_attribute
+      attr_accessor :label
+      
+      def initialize(label, dimension_value, fact_attribute)
+        @label = label
+        @dimension_value = dimension_value
+        @fact_attribute = fact_attribute
+      end
+      
+      def key
+        &quot;#{dimension_value}_#{fact_attribute.label}&quot;.gsub(' ', '_').downcase
+      end
+    end
+  end
 end</diff>
      <filename>lib/active_warehouse/report/data_column.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,14 @@
-module ActiveWarehouse
-	module Report
-
-		class DataRow
-			
-			attr_accessor :cells, :dimension_value
-			
-			def initialize(dimension_value, cells)
-				@dimension_value = dimension_value
-				@cells = cells
-			end
-			
-		end
-	end
+module ActiveWarehouse #:nodoc
+  module Report #:nodoc:
+    class DataRow
+      attr_accessor :cells
+      attr_accessor :dimension_value
+      
+      def initialize(dimension_value, cells)
+        @dimension_value = dimension_value
+        @cells = cells
+      end
+      
+    end
+  end
 end</diff>
      <filename>lib/active_warehouse/report/data_row.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,58 +1,65 @@
-module ActiveWarehouse
-	module Report
+module ActiveWarehouse #:nodoc:
+  module Report #:nodoc:
+    class Dimension
+      
+      attr_reader :dimension_class
+      attr_reader :name
+      attr_reader :hierarchy
+      attr_reader :hierarchy_name
+      attr_reader :filters
+      attr_reader :stage
+      attr_reader :hierarchy_length
+      attr_reader :hierarchy_level
+      attr_reader :param_prefix
+      
+      def initialize(dimension_type, report, params = {})
+        
+        @dimension_class = report.send(&quot;#{dimension_type}_dimension_class&quot;)
+        @name = report.send(&quot;#{dimension_type}_dimension_name&quot;)
+        @hierarchy_name = report.send(&quot;#{dimension_type}_hierarchy&quot;)
+        @filters = report.send(&quot;#{dimension_type}_filters&quot;)
+        @param_prefix = report.send(&quot;#{dimension_type}_param_prefix&quot;)
+        @stage = (params[:stage] || report.send(&quot;#{dimension_type}_stage&quot;)).to_i
+        
+        @hierarchy = @dimension_class.hierarchy(@hierarchy_name)
+        @hierarchy_length = @hierarchy.length
+        @hierarchy_level = @hierarchy[@stage]
+        @params = params
+      end
+      
+      def self.column(report, params = {})
+        Dimension.new(:column, report, params)
+      end
 
-		class Dimension
-			
-			attr_reader :dimension_class, :name, :hierarchy, :hierarchy_name, :filters, :stage, :hierarchy_length, :hierarchy_level, :param_prefix
-			
-			def initialize(dimension_type, report, params = {})
-				
-				@dimension_class = report.send(&quot;#{dimension_type}_dimension_class&quot;)
-				@name = report.send(&quot;#{dimension_type}_dimension_name&quot;)
-				@hierarchy_name = report.send(&quot;#{dimension_type}_hierarchy&quot;)
-				@filters = report.send(&quot;#{dimension_type}_filters&quot;)
-				@param_prefix = report.send(&quot;#{dimension_type}_param_prefix&quot;)
-				@stage = (params[:stage] || report.send(&quot;#{dimension_type}_stage&quot;)).to_i
-				
-				@hierarchy = @dimension_class.hierarchy(@hierarchy_name)
-				@hierarchy_length = @hierarchy.length
-				@hierarchy_level = @hierarchy[@stage]
-				@params = params
-			end
-			
-			def self.column(report, params = {})
-				Dimension.new(:column, report, params)
-			end
+      def self.row(report, params = {})
+        Dimension.new(:row, report, params)
+      end
 
-			def self.row(report, params = {})
-				Dimension.new(:row, report, params)
-			end
+      def query_filters
+        param_filters = {}
+        @params[:ancestors].each do |key, value|
+          param_filters[&quot;#{name}.#{key}&quot;] = value
+        end   
+        param_filters
+      end
+      
+      def values
+        filters[hierarchy_level].blank? ? available_values : available_values &amp; filters[hierarchy_level]
+      end
+      
+      def ancestors
+        (0..stage-1).map do |s| 
+          @params[:ancestors][hierarchy[s].to_s]
+        end.compact
+      end
 
-			def query_filters
-				param_filters = {}
-		    @params[:ancestors].each do |key, value|
-	        param_filters[&quot;#{name}.#{key}&quot;] = value
-		    end		
-				param_filters
-			end
-			
-			def values
-				filters[hierarchy_level].blank? ? available_values : available_values &amp; filters[hierarchy_level]
-			end
-			
-			def ancestors
-		    (0..stage-1).map do |s| 
-		      @params[:ancestors][hierarchy[s].to_s]
-		    end.compact
-			end
+      def has_children?
+        stage &lt; hierarchy_length - 1
+      end
 
-			def has_children?
-				stage &lt; hierarchy_length - 1
-			end
-
-		  def available_values
-		    dimension_class.available_child_values(hierarchy_name, ancestors).map(&amp;:to_s)
-		  end
-		end
-	end
+      def available_values
+        dimension_class.available_child_values(hierarchy_name, ancestors).map(&amp;:to_s)
+      end
+    end
+  end
 end</diff>
      <filename>lib/active_warehouse/report/dimension.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,9 @@
 module ActiveWarehouse #:nodoc:
   module Report #:nodoc:
     # A report which is used to represent a tabular report.
-    class TableReport &lt; ActiveRecord::Base
+    class TableReport
       include AbstractReport
-      before_save :to_storage
-      after_save :from_storage
+      
       attr_accessor :format
       attr_accessor :link_cell
       attr_accessor :html_params
@@ -24,15 +23,15 @@ module ActiveWarehouse #:nodoc:
         @html_params ||= {}
       end
 
-			def view(params, options = {})
-				if options.has_key?(:sortable_with_totals)
-					options[:sortable] = true
-					options[:with_totals] = true
-					options.delete(:sortable_with_totals)
-				end
-				
-				ActiveWarehouse::View::TableView.new(self, params, options)
-			end
+      def view(params, options = {})
+        if options.has_key?(:sortable_with_totals)
+          options[:sortable] = true
+          options[:with_totals] = true
+          options.delete(:sortable_with_totals)
+        end
+        
+        ActiveWarehouse::View::TableView.new(self, params, options)
+      end
     end
   end
 end
\ No newline at end of file</diff>
      <filename>lib/active_warehouse/report/table_report.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,25 +1,28 @@
-module ActiveWarehouse
-	module View
-
-		class TableView
-			
+module ActiveWarehouse #:nodoc:
+  module View #:nodoc:
+    class TableView
       include AbstractView
 
-			attr_reader :query_result, :fact_attributes,
-									:data_columns, :row_crumbs, :column_crumbs, :with_totals, :sortable
-									
-			attr_accessor :ignore_columns
-			
-			def initialize(report, params, options = {})
-				super
-				@with_totals = options.has_key?(:with_totals)
-				@sortable = options.has_key?(:sortable)
-				@ignore_columns = options.has_key?(:ignore_columns) ? options[:ignore_columns] : []
-				@column_crumbs = ColumnCrumb.gather(@column_dimension, @current_params)
+      attr_reader :query_result
+      attr_reader :fact_attributes
+      attr_reader :data_columns
+      attr_reader :row_crumbs
+      attr_reader :column_crumbs
+      attr_reader :with_totals
+      attr_reader :sortable
+                  
+      attr_accessor :ignore_columns
+      
+      def initialize(report, params, options = {})
+        super
+        @with_totals = options.has_key?(:with_totals)
+        @sortable = options.has_key?(:sortable)
+        @ignore_columns = options.has_key?(:ignore_columns) ? options[:ignore_columns] : []
+        @column_crumbs = ColumnCrumb.gather(@column_dimension, @current_params)
         @row_crumbs = RowCrumb.gather(@row_dimension, @current_params)
-				@query_result = execute_query
-				
-				@fact_attributes = report.fact_attributes.map	do |fact_attribute|
+        @query_result = execute_query
+        
+        @fact_attributes = report.fact_attributes.map do |fact_attribute|
           case fact_attribute
           when Symbol, String
             fact_attribute = report.fact_class.field_for_name(fact_attribute.to_s.dup)
@@ -27,62 +30,62 @@ module ActiveWarehouse
             fact_attribute
           else
             fact_attribute  
-          end			
-				end
-			end
-			
-			def execute_query
+          end     
+        end
+      end
+      
+      def execute_query
         report.cube.query_row_and_column(row_dimension, column_dimension,
           :conditions =&gt; report.conditions )
-			end
+      end
 
-			def column_total(column_index)
-				column = data_columns[column_index]
-				return &quot;&quot; unless column
-				column_attribute_key = column.fact_attribute.name.to_sym				
-				return &quot;&quot; if ignore_columns.include?(column_attribute_key)
-				total = 0
-				data_rows.each do |row|
-					value = row.cells[column_index].raw_value
-					if value.is_a? Numeric
-						total += value
-					end	
-				end
-					
-				formatted_value = format_data(column_attribute_key,total)
-				# formatted_value = format_data(column.fact_attribute.name.to_sym,total)
-			end
-			
-			def data_columns
-				@data_columns ||= []
-				return @data_columns unless @data_columns.empty?
-				if column_dimension
-					column_dimension.values.each do |dimension_value|
-						@fact_attributes.each do |fact_attribute|
-	            @data_columns &lt;&lt; ActiveWarehouse::Report::DataColumn.new(fact_attribute.label.humanize.titleize, dimension_value, fact_attribute)
-	          end					
-					end
-				end
-				@data_columns
-			end
-				
-			def data_rows
-				@data_rows ||= []
-				return @data_rows unless @data_rows.empty?
-				if row_dimension
-					columns = self.data_columns
-					row_dimension.values.each do |row_dimension_value|
-						cells = []
-						columns.each do |column|
-							cells &lt;&lt; data_cell(column.fact_attribute, column.dimension_value, row_dimension_value)
-	          end					
-						@data_rows &lt;&lt; ActiveWarehouse::Report::DataRow.new(row_dimension_value, cells)
-					end
-				end
-				@data_rows
-			end
-		
-			def data_cell(fact_attribute, column_dimension_value, row_dimension_value)
+      def column_total(column_index)
+        column = data_columns[column_index]
+        return &quot;&quot; unless column
+        column_attribute_key = column.fact_attribute.name.to_sym        
+        return &quot;&quot; if ignore_columns.include?(column_attribute_key)
+        total = 0
+        data_rows.each do |row|
+          value = row.cells[column_index].raw_value
+          if value.is_a? Numeric
+            total += value
+          end 
+        end
+          
+        formatted_value = format_data(column_attribute_key,total)
+        # formatted_value = format_data(column.fact_attribute.name.to_sym,total)
+      end
+      
+      def data_columns
+        @data_columns ||= []
+        return @data_columns unless @data_columns.empty?
+        if column_dimension
+          column_dimension.values.each do |dimension_value|
+            @fact_attributes.each do |fact_attribute|
+              @data_columns &lt;&lt; ActiveWarehouse::Report::DataColumn.new(fact_attribute.label.humanize.titleize, dimension_value, fact_attribute)
+            end         
+          end
+        end
+        @data_columns
+      end
+        
+      def data_rows
+        @data_rows ||= []
+        return @data_rows unless @data_rows.empty?
+        if row_dimension
+          columns = self.data_columns
+          row_dimension.values.each do |row_dimension_value|
+            cells = []
+            columns.each do |column|
+              cells &lt;&lt; data_cell(column.fact_attribute, column.dimension_value, row_dimension_value)
+            end         
+            @data_rows &lt;&lt; ActiveWarehouse::Report::DataRow.new(row_dimension_value, cells)
+          end
+        end
+        @data_rows
+      end
+    
+      def data_cell(fact_attribute, column_dimension_value, row_dimension_value)
         value = ''
         raw_value = nil
         case fact_attribute
@@ -93,44 +96,44 @@ module ActiveWarehouse
         end
         
         formatted_value = format_data(fact_attribute.name.to_sym,raw_value)
-				ActiveWarehouse::Report::DataCell.new(column_dimension_value, row_dimension_value, fact_attribute, raw_value, formatted_value)	
-			end
-		
-			def column_link(column_dimension_value)
-				current_params.merge({:cstage =&gt; column_dimension.stage + 1, 
-        	&quot;#{column_dimension.param_prefix}_#{column_dimension.hierarchy_level}&quot; =&gt; column_dimension_value})
-			end		
-			
-			def row_link(row_dimension_value)
-				current_params.merge({:rstage =&gt; row_dimension.stage + 1, 
-        	&quot;#{row_dimension.param_prefix}_#{row_dimension.hierarchy_level}&quot; =&gt; row_dimension_value})
-			end
-			
-			def cell_link(column_dimension_value,row_dimension_value)
-				current_params.merge({:rstage =&gt; row_dimension.stage + 1, :cstage =&gt; column_dimension.stage + 1, 
-        	&quot;#{column_dimension.param_prefix}_#{column_dimension.hierarchy_level}&quot; =&gt; column_dimension_value,
-        	&quot;#{row_dimension.param_prefix}_#{row_dimension.hierarchy_level}&quot; =&gt; row_dimension_value})
-			end
-			
-			def sortable?
-				@sortable
-			end
-			
-			def with_totals?
-				@with_totals
-			end
-			
-			def format_data(field, raw_value)
-		    format = report.format[field]
+        ActiveWarehouse::Report::DataCell.new(column_dimension_value, row_dimension_value, fact_attribute, raw_value, formatted_value)  
+      end
+    
+      def column_link(column_dimension_value)
+        current_params.merge({:cstage =&gt; column_dimension.stage + 1, 
+          &quot;#{column_dimension.param_prefix}_#{column_dimension.hierarchy_level}&quot; =&gt; column_dimension_value})
+      end   
+      
+      def row_link(row_dimension_value)
+        current_params.merge({:rstage =&gt; row_dimension.stage + 1, 
+          &quot;#{row_dimension.param_prefix}_#{row_dimension.hierarchy_level}&quot; =&gt; row_dimension_value})
+      end
+      
+      def cell_link(column_dimension_value,row_dimension_value)
+        current_params.merge({:rstage =&gt; row_dimension.stage + 1, :cstage =&gt; column_dimension.stage + 1, 
+          &quot;#{column_dimension.param_prefix}_#{column_dimension.hierarchy_level}&quot; =&gt; column_dimension_value,
+          &quot;#{row_dimension.param_prefix}_#{row_dimension.hierarchy_level}&quot; =&gt; row_dimension_value})
+      end
+      
+      def sortable?
+        @sortable
+      end
+      
+      def with_totals?
+        @with_totals
+      end
+      
+      def format_data(field, raw_value)
+        format = report.format[field]
         if format &amp;&amp; format.is_a?(Proc)
-          	value = format.call(raw_value)
-				elsif	format == :currency	
-						value = sprintf(&quot;$%.2f&quot;, raw_value)
+            value = format.call(raw_value)
+        elsif format == :currency 
+            value = sprintf(&quot;$%.2f&quot;, raw_value)
         else
           value = raw_value.to_s
-        end		
-			end
-		end
-		
-	end
+        end   
+      end
+    end
+    
+  end
 end</diff>
      <filename>lib/active_warehouse/view/table_view.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,16 +11,16 @@ module ActiveWarehouse::View
         column = {:label =&gt; col_label}
         column[:children] = []
         table_view.fact_attributes.each do |fact_attribute|
-					child_data = {:sortable =&gt; true}
+          child_data = {:sortable =&gt; true}
           child_data[:label] = fact_attribute.label.humanize.titleize
 
-					format = table_view.report.format[fact_attribute.name.to_sym]
+          format = table_view.report.format[fact_attribute.name.to_sym]
           if format &amp;&amp; format.is_a?(Symbol)
-						child_data[:formatter] = format
+            child_data[:formatter] = format
           end
           child_data[:key] = &quot;#{col_dim_value}_#{fact_attribute.label}&quot;.gsub(' ', '_').downcase
           column[:children] &lt;&lt; child_data
-        end	
+        end 
         columns &lt;&lt; column
       end
       columns
@@ -28,52 +28,52 @@ module ActiveWarehouse::View
 
     def yui_data_rows(table_view)
       data_rows = []
-  		table_view.data_rows.each do |data_row|
-  			data = {}
-  			data[:row_dimension_key] = link_to_if(table_view.row_dimension.has_children?, data_row.dimension_value, table_view.row_link(data_row.dimension_value))
-  			data[:row_dimension_label] = data_row.dimension_value
+      table_view.data_rows.each do |data_row|
+        data = {}
+        data[:row_dimension_key] = link_to_if(table_view.row_dimension.has_children?, data_row.dimension_value, table_view.row_link(data_row.dimension_value))
+        data[:row_dimension_label] = data_row.dimension_value
 
-  	    data_row.cells.each_with_index do |cell, index| # aggregated facts
-					value = cell.raw_value
-					format = table_view.report.format[cell.fact_attribute.name.to_sym]
+        data_row.cells.each_with_index do |cell, index| # aggregated facts
+          value = cell.raw_value
+          format = table_view.report.format[cell.fact_attribute.name.to_sym]
           if format &amp;&amp; format.is_a?(Proc)
-						value = format.call(cell.raw_value)
-          end	
-	
-  				value = link_to_if((table_view.report.link_cell &amp;&amp; table_view.column_dimension.has_children? &amp;&amp; table_view.row_dimension.has_children?), value, 
- 						table_view.cell_link(cell.column_dimension_value,data_row.dimension_value)
- 					)
- 					data[cell.key.to_sym] = value
-  	    end
-  			data_rows &lt;&lt; data
-  		end
-  		data_rows
+            value = format.call(cell.raw_value)
+          end 
+  
+          value = link_to_if((table_view.report.link_cell &amp;&amp; table_view.column_dimension.has_children? &amp;&amp; table_view.row_dimension.has_children?), value, 
+            table_view.cell_link(cell.column_dimension_value,data_row.dimension_value)
+          )
+          data[cell.key.to_sym] = value
+        end
+        data_rows &lt;&lt; data
+      end
+      data_rows
     end
 
     def yui_totals_row(table_view)
       x = ::Builder::XmlMarkup.new
-  		x.tr() do |x|
-  			x.td do 
-					x.div(:class =&gt; &quot;yui-dt-liner&quot;){ |x| x &lt;&lt; &quot;Grand Totals&quot;}
-				end
-  			table_view.data_columns.each_with_index do |column, index|
-        	x.td do |x|
-  					x.div(:class =&gt; &quot;yui-dt-liner&quot;){ |x| x &lt;&lt; table_view.column_total(index)}
-  				end
-  			end		
-  		end
-  		x.target!
+      x.tr() do |x|
+        x.td do 
+          x.div(:class =&gt; &quot;yui-dt-liner&quot;){ |x| x &lt;&lt; &quot;Grand Totals&quot;}
+        end
+        table_view.data_columns.each_with_index do |column, index|
+          x.td do |x|
+            x.div(:class =&gt; &quot;yui-dt-liner&quot;){ |x| x &lt;&lt; table_view.column_total(index)}
+          end
+        end   
+      end
+      x.target!
     end
     
     def yui_series_definitions(table_view)
       series_def = []
       table_view.column_dimension.values.each do |col_dim_value|
         table_view.fact_attributes.each do |fact_attribute|
-  				child_data = {}
+          child_data = {}
           child_data[:displayName] = fact_attribute.label.humanize.titleize
           child_data[:xField] = &quot;#{col_dim_value}_#{fact_attribute.label}&quot;.gsub(' ', '_').downcase
           series_def &lt;&lt; child_data
-        end	
+        end 
       end
       series_def
     end</diff>
      <filename>lib/active_warehouse/view/yui_adapter.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b549afd9b646a93a32af235ef61ba4e3c94eb1eb</id>
    </parent>
  </parents>
  <author>
    <name>Anthony Eden</name>
    <email>anthonyeden@gmail.com</email>
  </author>
  <url>http://github.com/aeden/activewarehouse/commit/7f5dc44194bbe4b5272043c21b62dcfe78681cff</url>
  <id>7f5dc44194bbe4b5272043c21b62dcfe78681cff</id>
  <committed-date>2008-11-24T18:40:22-08:00</committed-date>
  <authored-date>2008-11-24T18:28:32-08:00</authored-date>
  <message>first pass at removing dependency on ActiveRecord in the reports</message>
  <tree>4f621548124ca6d83274df382a2d379d12169767</tree>
  <committer>
    <name>Anthony Eden</name>
    <email>anthonyeden@gmail.com</email>
  </committer>
</commit>
