11# frozen_string_literal: true
22
3- module SplitIoClient ::Engine ::Events
4- class EventsManagerConfig
3+ module SplitIoClient
4+ module Engine
5+ module Events
6+ class EventsManagerConfig
57 attr_accessor :require_all , :prerequisites , :require_any , :suppressed_by , :execution_limits , :evaluation_order
68
79 def initialize
8- @require_all = get_require_all
9- @prerequisites = get_prerequisites
10- @require_any = get_require_any
11- @suppressed_by = get_suppressed_by
12- @execution_limits = get_execution_limits
13- @evaluation_order = get_sorted_events
10+ @require_all = construct_require_all
11+ @prerequisites = construct_prerequisites
12+ @require_any = construct_require_any
13+ @suppressed_by = construct_suppressed_by
14+ @execution_limits = construct_execution_limits
15+ @evaluation_order = construct_sorted_events
1416 end
15-
17+
1618 private
1719
18- def get_require_all
19- return {
20- SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_READY => Set . new ( [ SplitIoClient ::Engine ::Models ::SdkInternalEvent ::SDK_READY ] )
21- }
20+ def construct_require_all
21+ {
22+ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_READY => Set . new ( [ SplitIoClient ::Engine ::Models ::SdkInternalEvent ::SDK_READY ] )
23+ }
2224 end
2325
24- def get_prerequisites
25- return {
26- SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_UPDATE => Set . new ( [ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_READY ] )
27- }
26+ def construct_prerequisites
27+ {
28+ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_UPDATE => Set . new ( [ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_READY ] )
29+ }
2830 end
2931
30- def get_require_any
31- return {
32- SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_UPDATE => Set . new ( [ SplitIoClient ::Engine ::Models ::SdkInternalEvent ::FLAG_KILLED_NOTIFICATION , SplitIoClient ::Engine ::Models ::SdkInternalEvent ::FLAGS_UPDATED ,
33- SplitIoClient ::Engine ::Models ::SdkInternalEvent ::RB_SEGMENTS_UPDATED , SplitIoClient ::Engine ::Models ::SdkInternalEvent ::SEGMENTS_UPDATED ] )
34- }
32+ def construct_require_any
33+ {
34+ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_UPDATE => Set . new (
35+ [
36+ SplitIoClient ::Engine ::Models ::SdkInternalEvent ::FLAG_KILLED_NOTIFICATION ,
37+ SplitIoClient ::Engine ::Models ::SdkInternalEvent ::FLAGS_UPDATED ,
38+ SplitIoClient ::Engine ::Models ::SdkInternalEvent ::RB_SEGMENTS_UPDATED ,
39+ SplitIoClient ::Engine ::Models ::SdkInternalEvent ::SEGMENTS_UPDATED
40+ ]
41+ )
42+ }
3543 end
3644
37- def get_suppressed_by
38- return { }
45+ def construct_suppressed_by
46+ { }
3947 end
4048
41- def get_execution_limits
42- return {
43- SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_READY => 1 ,
44- SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_UPDATE => -1
45- }
49+ def construct_execution_limits
50+ {
51+ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_READY => 1 ,
52+ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_UPDATE => -1
53+ }
4654 end
4755
48- def get_sorted_events
49- sorted_events = [ ]
50- for sdk_event in [ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_READY , SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_UPDATE ]
51- sorted_events = dfs_recursive ( sdk_event , sorted_events )
52- end
56+ def construct_sorted_events
57+ sorted_events = [ ]
58+ [ SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_READY , SplitIoClient ::Engine ::Models ::SdkEvent ::SDK_UPDATE ] . each do | sdk_event |
59+ sorted_events = dfs_recursive ( sdk_event , sorted_events )
60+ end
5361
54- return sorted_events
62+ sorted_events
5563 end
5664
5765 def dfs_recursive ( sdk_event , added )
58- return added if added . include? ( sdk_event )
66+ return added if added . include? ( sdk_event )
5967
60- get_dependencies ( sdk_event ) . each do |dependent_event |
61- added = dfs_recursive ( dependent_event , added )
62- end
68+ get_dependencies ( sdk_event ) . each do |dependent_event |
69+ added = dfs_recursive ( dependent_event , added )
70+ end
6371
64- added . push ( sdk_event )
65- return added
72+ added . push ( sdk_event )
73+
74+ added
6675 end
6776
6877 def get_dependencies ( sdk_event )
69- dependencies = Set . new
70- @prerequisites . each do |prerequisites_event_name , prerequisites_event_value |
71- if prerequisites_event_name == sdk_event
72- for prereq_event in prerequisites_event_value
73- dependencies . add ( prereq_event )
74- end
75- end
76- end
78+ dependencies = Set . new
79+ @prerequisites . each do |prerequisites_event_name , prerequisites_event_value |
80+ next unless prerequisites_event_name == sdk_event
7781
78- @suppressed_by . each do |suppressed_event_name , suppressed_event_value |
79- if suppressed_event_value . include? ( sdk_event )
80- dependencies . add ( suppressed_event_name )
81- end
82+ prerequisites_event_value . each do |prereq_event |
83+ dependencies . add ( prereq_event )
8284 end
85+ end
86+
87+ @suppressed_by . each do |suppressed_event_name , suppressed_event_value |
88+ dependencies . add ( suppressed_event_name ) if suppressed_event_value . include? ( sdk_event )
89+ end
8390
84- return dependencies
91+ dependencies
8592 end
93+ end
8694 end
87- end
95+ end
96+ end
0 commit comments