Class: Julewire::Core::Destinations::WriteStep

Inherits:
Object
  • Object
show all
Defined in:
lib/julewire/core/destinations/write_step.rb

Instance Method Summary collapse

Constructor Details

#initialize(formatter:, encoder:, output:, max_record_bytes:, increment:, failure:, loss:, output_class_name:) ⇒ WriteStep

Returns a new instance of WriteStep.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/julewire/core/destinations/write_step.rb', line 8

def initialize(
  formatter:,
  encoder:,
  output:,
  max_record_bytes:,
  increment:,
  failure:,
  loss:,
  output_class_name:
)
  @formatter = formatter
  @encoder = encoder
  @output = output
  @max_record_bytes = max_record_bytes
  @increment = increment
  @failure = failure
  @loss = loss
  @output_class_name = output_class_name
end

Instance Method Details

#call(record) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/julewire/core/destinations/write_step.rb', line 28

def call(record)
  increment(:received)
  payload = format_record(record)
  return :dropped unless payload

  increment(:formatted)
  encoded = encode_payload(payload, record)
  return :dropped unless encoded
  return :dropped unless within_limit?(encoded, record)
  return :dropped unless write(encoded, record)

  increment(:output_accepted)
  :accepted
end