@@ -18,7 +18,7 @@ class SplitClient
1818 # @param sdk_key [String] the SDK key for your split account
1919 #
2020 # @return [SplitIoClient] split.io client instance
21- def initialize ( sdk_key , repositories , status_manager , config , impressions_manager , telemetry_evaluation_producer , evaluator , split_validator , fallback_treatment_calculator )
21+ def initialize ( sdk_key , repositories , status_manager , config , impressions_manager , telemetry_evaluation_producer , evaluator , split_validator , fallback_treatment_calculator , events_manager )
2222 @api_key = sdk_key
2323 @splits_repository = repositories [ :splits ]
2424 @segments_repository = repositories [ :segments ]
@@ -33,6 +33,7 @@ def initialize(sdk_key, repositories, status_manager, config, impressions_manage
3333 @split_validator = split_validator
3434 @evaluator = evaluator
3535 @fallback_treatment_calculator = fallback_treatment_calculator
36+ @events_manager = events_manager
3637 end
3738
3839 def get_treatment (
@@ -117,11 +118,11 @@ def destroy
117118 @config . logger . info ( 'Split client shutdown started...' ) if @config . debug_enabled
118119 if !@config . cache_adapter . is_a? ( SplitIoClient ::Cache ::Adapters ::RedisAdapter ) && @config . impressions_mode != :none &&
119120 ( !@impressions_repository . empty? || !@events_repository . empty? )
120- @config . logger . debug ( "Impressions and/or Events cache is not empty" )
121+ @config . logger . debug ( "Impressions and/or Events cache is not empty" ) if @config . debug_enabled
121122 # Adding small delay to ensure sender threads are fully running
122123 sleep ( 0.1 )
123124 if !@config . threads . key? ( :impressions_sender ) || !@config . threads . key? ( :events_sender )
124- @config . logger . debug ( "Periodic data recording thread has not started yet, waiting for service startup." )
125+ @config . logger . debug ( "Periodic data recording thread has not started yet, waiting for service startup." ) if @config . debug_enabled
125126 @config . threads [ :start_sdk ] . join ( 5 ) if @config . threads . key? ( :start_sdk )
126127 end
127128 end
@@ -176,6 +177,14 @@ def block_until_ready(time = nil)
176177 @status_manager . wait_until_ready ( time ) if @status_manager
177178 end
178179
180+ def register ( sdk_event , handler )
181+ @events_manager . register ( sdk_event , handler )
182+ end
183+
184+ def unregister ( sdk_event , handler )
185+ @events_manager . unregister ( sdk_event )
186+ end
187+
179188 private
180189
181190 def check_properties_size ( properties_size , msg = "Event not queued" )
0 commit comments