22
33require_relative '../../core/workers/polling'
44
5- require_relative 'batch '
5+ require_relative 'batch_builder '
66require_relative 'buffer'
77require_relative 'context'
88
@@ -18,17 +18,16 @@ class Worker
1818
1919 attr_reader :logger
2020
21- # NOTE: Context builder and the data model is not finished
2221 def initialize (
22+ settings :,
2323 transport :,
2424 logger : Datadog . logger ,
2525 flush_interval_seconds : DEFAULT_FLUSH_INTERVAL_SECONDS ,
26- buffer_limit : DEFAULT_BUFFER_LIMIT ,
27- context_builder : nil
26+ buffer_limit : DEFAULT_BUFFER_LIMIT
2827 )
2928 @logger = logger
3029 @transport = transport
31- @context_builder = context_builder || -> { Context . build }
30+ @batch_builder = BatchBuilder . new ( settings )
3231 @buffer_limit = buffer_limit
3332 @flush_mutex = Mutex . new
3433
@@ -67,12 +66,12 @@ def dequeue
6766
6867 def flush
6968 events , dropped = dequeue
70- send_events ( events || [ ] , dropped || 0 )
69+ send_events ( events || [ ] , dropped . to_i )
7170 end
7271
7372 def perform ( *args )
7473 events , dropped = args
75- send_events ( events || [ ] , dropped || 0 )
74+ send_events ( events || [ ] , dropped . to_i )
7675 end
7776
7877 private
@@ -84,7 +83,7 @@ def send_events(events, dropped)
8483 logger . debug { "OpenFeature: Exposure worker dropped #{ dropped } event(s) due to full buffer" }
8584 end
8685
87- payload = Batch . new ( context : @context_builder . call , exposures : events ) . to_h
86+ payload = @batch_builder . payload_for ( events )
8887 send_payload ( payload )
8988 end
9089
0 commit comments