Sha256: d1b49ca220daeb3f4885a5aaf5552304fa0c6ac9c9cc3dd93f266c1ee20d8b15
Contents?: true
Size: 845 Bytes
Versions: 2
Compression:
Stored size: 845 Bytes
Contents
module ETL module Processor # Ensure that each specified field is available class EnsureFieldsPresenceProcessor < ETL::Processor::RowProcessor # Initialize the processor. # # Configuration options: # * <tt>:fields</tt>: An array of keys whose presence should be verified in each row def initialize(control, configuration) super @fields = configuration[:fields] raise ControlError, ":fields must be specified" unless @fields end def process(row) missing_fields = configuration[:fields].map(&:to_s) - row.keys.map(&:to_s) raise(ETL::ControlError, "Row missing required field(s) #{missing_fields.join(',')} in row. Available fields are : #{row.keys.join(',')}") unless missing_fields.empty? row end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
activewarehouse-etl-1.0.0 | lib/etl/processor/ensure_fields_presence_processor.rb |
activewarehouse-etl-1.0.0.rc1 | lib/etl/processor/ensure_fields_presence_processor.rb |