lib/chronicle/etl/transformers/transformer.rb in chronicle-etl-0.1.4 vs lib/chronicle/etl/transformers/transformer.rb in chronicle-etl-0.2.0
- old
+ new
@@ -1,16 +1,32 @@
module Chronicle
- module Etl
+ module ETL
+ # Abstract class representing an Transformer for an ETL job
class Transformer
- extend Chronicle::Etl::Catalog
+ extend Chronicle::ETL::Catalog
+ # Construct a new instance of this transformer. Options are passed in from a Runner
+ # == Paramters:
+ # options::
+ # Options for configuring this Transformer
def initialize(options = {})
@options = options
end
+ # The main entrypoint for transforming a record. Called by a Runner on each extracted record
def transform data
raise NotImplementedError
end
+
+ # The domain or provider-specific id of the record this transformer is working on.
+ # Used for building a cursor so an extractor doesn't have to start from the beginning of a
+ # data source from the beginning.
+ def id; end
+
+ # The domain or provider-specific timestamp of the record this transformer is working on.
+ # Used for building a cursor so an extractor doesn't have to start from the beginning of a
+ # data source from the beginning.
+ def timestamp; end
end
end
end
require_relative 'json_transformer'