alvinsj/flatten_record

View on GitHub
lib/flatten_record/meta/compute_column.rb

Summary

Maintainability
A
1 hr
Test Coverage
module FlattenRecord
  module Meta
    class ComputeColumn < Column
      def initialize(parent, method, type, target_model, model, options={})
        @column = Struct.
          new(:name, :default, :type, :null). 
          new(method, options[:default], type, options[:null])  
        
        super(parent, @column, target_model, model) 
      end

      def denormalize(instance, to_record)
        assign_value(to_record, name) do |record|
          record.send("compute_#{@column.name}".to_sym, instance)
        end
      end 
    end
  end
end