class ReindeerETL::Transforms::RenameFields

A simple transform that renames columns

Public Class Methods

new(cols) click to toggle source
# File lib/reindeer-etl/transforms/rename_fields.rb, line 5
def initialize cols
    @cols = cols
end

Public Instance Methods

process(row) click to toggle source
# File lib/reindeer-etl/transforms/rename_fields.rb, line 9
def process(row)
    counter=0
    row_keys = row.keys.to_set
    req_keys = @cols.keys.to_set

    # raise an error unless all of req is in row
    unless req_keys.subset?(row_keys)
        raise ReindeerETL::Errors::RecordInvalid.new('Missing columns in rename')
    end
    @cols.each do |k, v|
        next if k == v
        row[v] = row.delete(k)
    end
    row
end