Sha256: f3d3ea98b5a86ff67b7872d7946d5445584eb38fafbcb566487213feeb4e640c

Contents?: true

Size: 633 Bytes

Versions: 5

Compression:

Stored size: 633 Bytes

Contents

module ETL
  module Transform
    class SplitFieldsTransform < ETL::Transform::Transform
      attr_reader :delimiter
      attr_reader :new_fields

      def initialize(control, name, configuration)
        @delimiter = configuration[:delimiter] || ','
        @new_fields = configuration[:new_fields]
        super
      end
      
      def transform(name, value, row)
        return nil if row.nil?
        return nil if row[name].nil?

        fields = row[name].split(@delimiter)
        @new_fields.each_with_index do |new, index|
          row[new] = fields[index]
        end

        row[name]
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 3 rubygems

Version Path
activewarehouse-etl-1.0.0 lib/etl/transform/split_fields_transform.rb
activewarehouse-etl-1.0.0.rc1 lib/etl/transform/split_fields_transform.rb
etl-0.9.5.rc1 lib/etl/transform/split_fields_transform.rb
activewarehouse-etl-sgonyea-0.9.6 lib/etl/transform/split_fields_transform.rb
activewarehouse-etl-0.9.5.rc1 lib/etl/transform/split_fields_transform.rb