module ReindeerETL::Transforms::SimpleTransforms

Public Instance Methods

simple_transforms(row) click to toggle source

Configurable transforms in source

# File lib/reindeer-etl/transforms/simple_transforms.rb, line 10
def simple_transforms row
    st_only_cols(row) unless @only_cols.empty?
    st_require_cols(row) unless @require_cols.empty?
    row
end
st_initialize(opts={}) click to toggle source
# File lib/reindeer-etl/transforms/simple_transforms.rb, line 3
def st_initialize opts={}
    @only_cols = (opts.delete(:only) || []).to_set
    @require_cols = (opts.delete(:require) || []).to_set
end
st_only_cols(dict) click to toggle source

Filter out everything except these columns

# File lib/reindeer-etl/transforms/simple_transforms.rb, line 18
def st_only_cols dict
    (dict.keys.to_set - @only_cols).each{|col|dict.delete(col)}
    dict
end
st_require_cols(dict) click to toggle source

require these columns

# File lib/reindeer-etl/transforms/simple_transforms.rb, line 25
def st_require_cols dict
    dcols = dict.keys.to_set
    unless @require_cols.subset? dict.keys.to_set
        missing_cols = (@require_cols - dcols).to_a
        raise ReindeerETL::Errors::RecordInvalid.new("Missing required columns: #{missing_cols}")
    end
end