Sha256: d7193c12fa2d1ddd650e7b649417aea81e73f7ba57e3c69102ce4f104fbcc0c4

Contents?: true

Size: 737 Bytes

Versions: 1

Compression:

Stored size: 737 Bytes

Contents

# frozen_string_literal: true

module Chronicle
  module ETL
    class FormatTransformer < Chronicle::ETL::Transformer
      register_connector do |r|
        r.identifier = :format
        r.description = 'records to a differnet hash/json format'
      end

      setting :format, default: nil

      def transform(record)
        serializer = find_serializer(@config.format)
        serializer.serialize(record.data)
      end

      private

      def find_serializer(format)
        case format
        when 'jsonld'
          Chronicle::Serialization::JSONLDSerializer
        when 'jsonapi'
          Chronicle::Serialization::JSONAPISerializer
        else
          raise 'unknown format'
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chronicle-etl-0.6.1 lib/chronicle/etl/transformers/format_transformer.rb