Skip to content

Commit 55fa95e

Browse files
committed
used relative load for events models classes
1 parent 455e84d commit 55fa95e

8 files changed

Lines changed: 60 additions & 42 deletions

File tree

lib/splitclient-rb/cache/repositories/rule_based_segments_repository.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
require 'concurrent'
2+
require_relative '../../engine/models/sdk_internal_event_notification.rb'
3+
require_relative '../../engine/models/events_metadata.rb'
4+
require_relative '../../engine/models/sdk_internal_event.rb'
5+
require_relative '../../engine/models/sdk_event_type.rb'
26

37
module SplitIoClient
48
module Cache
@@ -50,10 +54,10 @@ def update(to_add, to_delete, new_change_number)
5054

5155
if to_add.length > 0 || to_delete.length > 0
5256
@internal_events_queue.push(
53-
SplitIoClient::Engine::Models::SdkInternalEventNotification.new(
54-
SplitIoClient::Engine::Models::SdkInternalEvent::RB_SEGMENTS_UPDATED,
55-
SplitIoClient::Engine::Models::EventsMetadata.new(
56-
SplitIoClient::Engine::Models::SdkEventType::SEGMENTS_UPDATE,
57+
SdkInternalEventNotification.new(
58+
SdkInternalEvent::RB_SEGMENTS_UPDATED,
59+
EventsMetadata.new(
60+
SdkEventType::SEGMENTS_UPDATE,
5761
[]
5862
)
5963
)

lib/splitclient-rb/cache/repositories/segments_repository.rb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
require_relative '../../engine/models/sdk_internal_event_notification.rb'
2+
require_relative '../../engine/models/events_metadata.rb'
3+
require_relative '../../engine/models/sdk_internal_event.rb'
4+
require_relative '../../engine/models/sdk_event_type.rb'
5+
16
module SplitIoClient
27
module Cache
38
module Repositories
@@ -27,10 +32,10 @@ def add_to_segment(segment)
2732
remove_keys(name, segment[:removed])
2833
if segment[:added].length > 0 || segment[:removed].length > 0
2934
@internal_events_queue.push(
30-
SplitIoClient::Engine::Models::SdkInternalEventNotification.new(
31-
SplitIoClient::Engine::Models::SdkInternalEvent::SEGMENTS_UPDATED,
32-
SplitIoClient::Engine::Models::EventsMetadata.new(
33-
SplitIoClient::Engine::Models::SdkEventType::SEGMENTS_UPDATE,
35+
SdkInternalEventNotification.new(
36+
SdkInternalEvent::SEGMENTS_UPDATED,
37+
EventsMetadata.new(
38+
SdkEventType::SEGMENTS_UPDATE,
3439
[]
3540
)
3641
)

lib/splitclient-rb/cache/repositories/splits_repository.rb

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
require 'concurrent'
2+
require_relative '../../engine/models/sdk_internal_event_notification.rb'
3+
require_relative '../../engine/models/events_metadata.rb'
4+
require_relative '../../engine/models/sdk_internal_event.rb'
5+
require_relative '../../engine/models/sdk_event_type.rb'
26

37
module SplitIoClient
48
module Cache
@@ -57,10 +61,10 @@ def update(to_add, to_delete, new_change_number)
5761

5862
if to_add.length > 0 || to_delete.length > 0
5963
@internal_events_queue.push(
60-
SplitIoClient::Engine::Models::SdkInternalEventNotification.new(
61-
SplitIoClient::Engine::Models::SdkInternalEvent::FLAGS_UPDATED,
62-
SplitIoClient::Engine::Models::EventsMetadata.new(
63-
SplitIoClient::Engine::Models::SdkEventType::FLAG_UPDATE,
64+
SdkInternalEventNotification.new(
65+
SdkInternalEvent::FLAGS_UPDATED,
66+
EventsMetadata.new(
67+
SdkEventType::FLAG_UPDATE,
6468
to_add.map {|flag| flag[:name]} | to_delete.map {|flag| flag[:name]}
6569
)
6670
)
@@ -154,10 +158,10 @@ def kill(change_number, split_name, default_treatment)
154158

155159
@adapter.set_string(namespace_key(".split.#{split_name}"), split.to_json)
156160
@internal_events_queue.push(
157-
SplitIoClient::Engine::Models::SdkInternalEventNotification.new(
158-
SplitIoClient::Engine::Models::SdkInternalEvent::FLAG_KILLED_NOTIFICATION,
159-
SplitIoClient::Engine::Models::EventsMetadata.new(
160-
SplitIoClient::Engine::Models::SdkEventType::FLAG_UPDATE,
161+
SdkInternalEventNotification.new(
162+
SdkInternalEvent::FLAG_KILLED_NOTIFICATION,
163+
EventsMetadata.new(
164+
SdkEventType::FLAG_UPDATE,
161165
[split_name]
162166
)
163167
)

lib/splitclient-rb/engine/events/events_manager.rb

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# frozen_string_literal: true
2+
include SplitIoClient::Engine::Models
23

34
module SplitIoClient
45
module Engine
@@ -18,15 +19,15 @@ def register(sdk_event, event_handler)
1819

1920
@mutex.synchronize do
2021
# SDK ready already fired
21-
if sdk_event == SplitIoClient::Engine::Models::SdkEvent::SDK_READY && event_already_triggered(sdk_event)
22-
@active_subscriptions[sdk_event] = SplitIoClient::Engine::Models::EventActiveSubscriptions.new(true, event_handler)
22+
if sdk_event == SdkEvent::SDK_READY && event_already_triggered(sdk_event)
23+
@active_subscriptions[sdk_event] = EventActiveSubscriptions.new(true, event_handler)
2324
@config.logger.debug('EventsManager: Firing SDK_READY event for new subscription') if @config.debug_enabled
2425
fire_sdk_event(sdk_event, nil)
2526
return
2627
end
2728

2829
@config.logger.debug("EventsManager: Register event: #{sdk_event}") if @config.debug_enabled
29-
@active_subscriptions[sdk_event] = SplitIoClient::Engine::Models::EventActiveSubscriptions.new(false, event_handler)
30+
@active_subscriptions[sdk_event] = EventActiveSubscriptions.new(false, event_handler)
3031
end
3132
end
3233

@@ -50,7 +51,7 @@ def notify_internal_event(sdk_internal_event, event_metadata)
5051
# if client is not subscribed to SDK_READY
5152
if check_if_register_needed(sorted_event)
5253
@config.logger.debug('EventsManager: Registering SDK_READY event as fired') if @config.debug_enabled
53-
@active_subscriptions[Engine::Models::SdkEvent::SDK_READY] = Engine::Models::EventActiveSubscriptions.new(true, nil)
54+
@active_subscriptions[SdkEvent::SDK_READY] = EventActiveSubscriptions.new(true, nil)
5455
end
5556
end
5657
end
@@ -66,7 +67,7 @@ def destroy
6667
private
6768

6869
def check_if_register_needed(sorted_event)
69-
sorted_event == SplitIoClient::Engine::Models::SdkEvent::SDK_READY &&
70+
sorted_event == SdkEvent::SDK_READY &&
7071
get_event_handler(sorted_event).nil? &&
7172
!@active_subscriptions.include?(sorted_event)
7273
end
@@ -110,15 +111,15 @@ def get_event_handler(sdk_event)
110111
end
111112

112113
def get_sdk_event_if_applicable(sdk_internal_event)
113-
final_sdk_event = SplitIoClient::Engine::Models::ValidSdkEvent.new(nil, false)
114+
final_sdk_event = ValidSdkEvent.new(nil, false)
114115

115116
events_to_fire = []
116117
require_any_sdk_event = check_require_any(sdk_internal_event)
117118
if require_any_sdk_event.valid
118119
if (!event_already_triggered(require_any_sdk_event.sdk_event) &&
119120
execution_limit(require_any_sdk_event.sdk_event) == 1) ||
120121
execution_limit(require_any_sdk_event.sdk_event) == -1
121-
final_sdk_event = SplitIoClient::Engine::Models::ValidSdkEvent.new(
122+
final_sdk_event = ValidSdkEvent.new(
122123
require_any_sdk_event.sdk_event,
123124
check_prerequisites(require_any_sdk_event.sdk_event) &&
124125
check_suppressed_by(require_any_sdk_event.sdk_event)
@@ -178,10 +179,10 @@ def execution_limit(sdk_event)
178179
end
179180

180181
def check_require_any(sdk_internal_event)
181-
valid_sdk_event = SplitIoClient::Engine::Models::ValidSdkEvent.new(nil, false)
182+
valid_sdk_event = ValidSdkEvent.new(nil, false)
182183
@manager_config.require_any.each do |name, val|
183184
if val.include?(sdk_internal_event)
184-
valid_sdk_event = SplitIoClient::Engine::Models::ValidSdkEvent.new(name, true)
185+
valid_sdk_event = ValidSdkEvent.new(name, true)
185186
return valid_sdk_event
186187
end
187188
end

lib/splitclient-rb/engine/models/sdk_internal_event_notification.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
# frozen_string_literal: false
22

33
module SplitIoClient
4-
module Engine::Models
5-
class SdkInternalEventNotification
6-
attr_reader :internal_event, :metadata
4+
module Engine
5+
module Models
6+
class SdkInternalEventNotification
7+
attr_reader :internal_event, :metadata
78

8-
def initialize(internal_event, metadata)
9-
@internal_event = internal_event
10-
@metadata = metadata
9+
def initialize(internal_event, metadata)
10+
@internal_event = internal_event
11+
@metadata = metadata
12+
end
1113
end
1214
end
1315
end

lib/splitclient-rb/engine/status_manager.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
# frozen_string_literal: true
2+
require_relative './models/sdk_internal_event_notification.rb'
3+
require_relative './models/sdk_internal_event.rb'
24

35
module SplitIoClient
46
module Engine
@@ -21,8 +23,8 @@ def ready!
2123
@sdk_ready.count_down
2224
@config.logger.info('SplitIO SDK is ready')
2325
@internal_events_queue.push(
24-
SplitIoClient::Engine::Models::SdkInternalEventNotification.new(
25-
SplitIoClient::Engine::Models::SdkInternalEvent::SDK_READY, nil
26+
SdkInternalEventNotification.new(
27+
SdkInternalEvent::SDK_READY, nil
2628
)
2729
)
2830
end

lib/splitclient-rb/engine/sync_manager.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ def start_thread
4747
connected = false
4848

4949
if @config.streaming_enabled
50-
log_if_debug('Starting Streaming mode ...')
50+
@config.logger.debug('Starting Streaming mode ...') if @config.debug_enabled
5151
start_push_status_monitor
5252
connected = @push_manager.start_sse
5353
end
5454

5555
unless connected
56-
log_if_debug('Starting Polling mode ...')
56+
@config.logger.debug('Starting Polling mode ...') if @config.debug_enabled
5757
@synchronizer.start_periodic_fetch
5858
record_telemetry(Telemetry::Domain::Constants::SYNC_MODE, SYNC_MODE_POLLING)
5959
end
@@ -92,7 +92,7 @@ def process_push_shutdown
9292

9393
def process_connected
9494
if @sse_connected.value
95-
log_if_debug('Streaming already connected.')
95+
@config.logger.debug('Streaming already connected.') if @config.debug_enabled
9696
return
9797
end
9898

@@ -107,7 +107,7 @@ def process_connected
107107

108108
def process_forced_stop
109109
unless @sse_connected.value
110-
log_if_debug('Streaming already disconnected.')
110+
@config.logger.debug('Streaming already disconnected.') if @config.debug_enabled
111111
return
112112
end
113113

@@ -120,7 +120,7 @@ def process_forced_stop
120120

121121
def process_disconnect(reconnect)
122122
unless @sse_connected.value
123-
log_if_debug('Streaming already disconnected.')
123+
@config.logger.debug('Streaming already disconnected.') if @config.debug_enabled
124124
return
125125
end
126126

@@ -144,14 +144,14 @@ def record_telemetry(type, data)
144144

145145
def start_push_status_monitor
146146
@config.threads[:push_status_handler] = Thread.new do
147-
log_if_debug('Starting push status handler ...')
147+
@config.logger.debug('Starting push status handler ...') if @config.debug_enabled
148148
incoming_push_status_handler
149149
end
150150
end
151151

152152
def incoming_push_status_handler
153153
while (status = @status_queue.pop)
154-
log_if_debug("Push status handler dequeue #{status}")
154+
@config.logger.debug("Push status handler dequeue #{status}") if @config.debug_enabled
155155

156156
case status
157157
when Constants::PUSH_CONNECTED

spec/sse/event_source/client_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
let(:log) { StringIO.new }
1111
let(:events_queue) { Queue.new }
12-
let(:config) { SplitIoClient::SplitConfig.new(logger: Logger.new(log)) }
12+
let(:config) { SplitIoClient::SplitConfig.new(logger: Logger.new(log), debug_enabled: true) }
1313
let(:telemetry_runtime_producer) { SplitIoClient::Telemetry::RuntimeProducer.new(config) }
1414
let(:telemetry_runtime_consumer) { SplitIoClient::Telemetry::RuntimeConsumer.new(config) }
1515
let(:api_token) { 'api-token-test' }
@@ -332,7 +332,7 @@
332332

333333
it 'test retry with IO::WaitReadable exceptions' do
334334
log2 = StringIO.new
335-
config2 = SplitIoClient::SplitConfig.new(logger: Logger.new(log2))
335+
config2 = SplitIoClient::SplitConfig.new(logger: Logger.new(log2), debug_enabled: true)
336336

337337
mock_server do |server|
338338
server.setup_response('/') do |_, res|

0 commit comments

Comments
 (0)