Sha256: d62dd14aec1d78f6dc47d40d71d60b3eba26c02d6599e09f817c2b11c9cc4d95

Contents?: true

Size: 1.04 KB

Versions: 28

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

require 'avro_turf/messaging'
require 'deimos/avro_data_coder'

module Deimos
  # Service Object to decode avro messages
  class AvroDataDecoder < AvroDataCoder
    # Decode some data.
    # @param payload [Hash|String]
    # @param schema [String]
    # @return [Hash]
    def decode(payload, schema: nil)
      schema ||= @schema
      avro_turf_messaging.decode(payload, schema_name: schema)
    end

    # Decode against a local schema.
    # @param payload [Hash]
    # @param schema [String]
    # @return [Hash]
    def decode_local(payload, schema: nil)
      schema ||= @schema
      avro_turf.decode(payload, schema_name: schema, namespace: @namespace)
    end

    # @param payload [String] the encoded key.
    # @param key_id [String|Symbol]
    # @return [Object] the decoded key (int/long/string).
    def decode_key(payload, key_id)
      key_schema = _generate_key_schema(key_id)
      field_name = _field_name_from_schema(key_schema)
      decode(payload, schema: key_schema['name'])[field_name]
    end
  end
end

Version data entries

28 entries across 28 versions & 2 rubygems

Version Path
deimos-ruby-1.3.0.pre.beta5 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.4.0.pre.beta7 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.4.0.pre.beta6 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.4.0.pre.beta5 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.3.0.pre.beta4 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.4.0.pre.beta4 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.4.0.pre.beta3 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.3.0.pre.beta3 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.4.0.pre.beta2 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.4.0.pre.beta1 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.3.0.pre.beta2 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.3.0.pre.beta1 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.2.0.pre.beta1 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.1.0.pre.beta2 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.1.0.pre.beta1 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.0.0 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.0.0.pre.beta26 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.0.0.pre.beta25 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.0.0.pre.beta24 lib/deimos/avro_data_decoder.rb
deimos-ruby-1.0.0.pre.beta23 lib/deimos/avro_data_decoder.rb