Module: Karafka::Routing::Features::Deserializers::Topic
- Defined in:
- lib/karafka/routing/features/deserializers/topic.rb
Overview
Routing topic deserializers API. It allows to configure deserializers for various components of each message.
Instance Method Summary collapse
-
#deserializer(payload) ⇒ Object
Supports pre 2.4 format where only payload deserializer could be defined.
-
#deserializers(payload: Karafka::Deserializers::Payload.new, key: Karafka::Deserializers::Key.new, headers: Karafka::Deserializers::Headers.new) ⇒ Object
Allows for setting all the deserializers with standard defaults.
-
#deserializers? ⇒ Boolean
Deserializers are always active.
-
#initialize ⇒ Object
This method calls the parent class initializer and then sets up the extra instance variable to nil.
-
#to_h ⇒ Hash
Topic setup hash.
Instance Method Details
#deserializer(payload) ⇒ Object
Supports pre 2.4 format where only payload deserializer could be defined. We do not retire this format because it is not bad when users do not do anything advanced with key or headers
41 42 43 |
# File 'lib/karafka/routing/features/deserializers/topic.rb', line 41 def deserializer(payload) deserializers(payload: payload) end |
#deserializers(payload: Karafka::Deserializers::Payload.new, key: Karafka::Deserializers::Key.new, headers: Karafka::Deserializers::Headers.new) ⇒ Object
Allows for setting all the deserializers with standard defaults
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/karafka/routing/features/deserializers/topic.rb', line 24 def deserializers( payload: Karafka::Deserializers::Payload.new, key: Karafka::Deserializers::Key.new, headers: Karafka::Deserializers::Headers.new ) @deserializers ||= Config.new( active: true, payload: payload, key: key, headers: headers ) end |
#deserializers? ⇒ Boolean
Returns Deserializers are always active.
46 47 48 |
# File 'lib/karafka/routing/features/deserializers/topic.rb', line 46 def deserializers? deserializers.active? end |
#initialize ⇒ Object
This method calls the parent class initializer and then sets up the extra instance variable to nil. The explicit initialization to nil is included as an optimization for Ruby’s object shapes system, which improves memory layout and access performance.
15 16 17 18 |
# File 'lib/karafka/routing/features/deserializers/topic.rb', line 15 def initialize(...) super @deserializers = nil end |
#to_h ⇒ Hash
Returns topic setup hash.
51 52 53 54 55 |
# File 'lib/karafka/routing/features/deserializers/topic.rb', line 51 def to_h super.merge( deserializers: deserializers.to_h ).freeze end |