Sha256: de2d14f46bf73b4f25be932403edc3940b52dc977bc3049746da6625f6fec281
Contents?: true
Size: 735 Bytes
Versions: 1
Compression:
Stored size: 735 Bytes
Contents
# frozen_string_literal: true module Chronicle module ETL class SortTransformer < Chronicle::ETL::Transformer register_connector do |r| r.identifier = :sort r.description = 'sorts records by a given field' end setting :key, required: true, default: 'id' setting :direction, required: false, default: 'desc' def transform(record) stash_record(record) end def finish return unless @stashed_records&.any? sorted = @stashed_records.sort_by do |record| value = record.data[@config.key] value.nil? ? [1] : [0, value] end sorted.reverse! if @config.direction == 'desc' sorted 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/sort_transformer.rb |