Sha256: c1380c0988dce3796e7c881a48edcb428ddb9fe2d3c5632c643ccac9e729cd32

Contents?: true

Size: 921 Bytes

Versions: 23

Compression:

Stored size: 921 Bytes

Contents

#RAILS_ENV = 'development'
#require '../config/environment'

module ETL #:nodoc:
  module Control #:nodoc:
    class ModelSource < Source   
      
      def columns
        case definition
        when Array
          definition.collect(&:to_sym)
        when Hash
          definition.keys.collect(&:to_sym)
        else
          raise "Definition must be either an Array or a Hash"
        end
      end
      
      def railsmodel
        configuration[:model]
      end
      
      def order
        configuration[:order] || "id"
      end
         
      def each(&block)
          railsmodel.to_s.camelize.constantize.find(:all,:order=>order).each do |row|
            result_row = ETL::Row.new
            result_row.source = self
            columns.each do |column|
              result_row[column.to_sym] = row.send(column)
            end
            yield result_row
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 9 rubygems

Version Path
aeden-activewarehouse-etl-0.9.1 etl/lib/etl/control/source/model_source.rb
colincasey-activewarehouse-etl-0.9.4 lib/etl/control/source/model_source.rb
colincasey-activewarehouse-etl-0.9.5 lib/etl/control/source/model_source.rb
factorylabs-activewarehouse-etl-0.9.1.2 lib/etl/control/source/model_source.rb
factorylabs-activewarehouse-etl-0.9.1.3 lib/etl/control/source/model_source.rb
factorylabs-activewarehouse-etl-0.9.1.4 lib/etl/control/source/model_source.rb
factorylabs-activewarehouse-etl-0.9.1.5 lib/etl/control/source/model_source.rb
factorylabs-activewarehouse-etl-0.9.1.6 lib/etl/control/source/model_source.rb
factorylabs-activewarehouse-etl-0.9.1.7 lib/etl/control/source/model_source.rb
jayzes-activewarehouse-etl-0.9.1.1 lib/etl/control/source/model_source.rb
jayzes-activewarehouse-etl-0.9.1.2 lib/etl/control/source/model_source.rb
jayzes-activewarehouse-etl-0.9.1 lib/etl/control/source/model_source.rb
activewarehouse-etl-1.0.0 lib/etl/control/source/model_source.rb
activewarehouse-etl-1.0.0.rc1 lib/etl/control/source/model_source.rb
etl-0.9.5.rc1 lib/etl/control/source/model_source.rb
activewarehouse-etl-sgonyea-0.9.6 lib/etl/control/source/model_source.rb
activewarehouse-etl-0.9.5.rc1 lib/etl/control/source/model_source.rb
darrell-activewarehouse-etl-0.9.1.6 lib/etl/control/source/model_source.rb
darrell-activewarehouse-etl-0.9.1.4 lib/etl/control/source/model_source.rb
factorylabs-activewarehouse-etl-0.9.1.8 lib/etl/control/source/model_source.rb