18
18
module Optimizely
19
19
20
20
V1_CONFIG_VERSION = '1'
21
- V2_CONFIG_VERSION = '2'
22
21
23
- SUPPORTED_VERSIONS = [ V2_CONFIG_VERSION ]
24
22
UNSUPPORTED_VERSIONS = [ V1_CONFIG_VERSION ]
25
23
26
24
class ProjectConfig
@@ -47,9 +45,11 @@ class ProjectConfig
47
45
attr_reader :event_key_map
48
46
attr_reader :experiment_id_map
49
47
attr_reader :experiment_key_map
48
+ attr_reader :feature_flag_key_map
50
49
attr_reader :group_key_map
51
50
attr_reader :audience_id_map
52
51
attr_reader :variation_id_map
52
+ attr_reader :variation_id_to_variable_usage_map
53
53
attr_reader :variation_key_map
54
54
55
55
def initialize ( datafile , logger , error_handler )
@@ -73,6 +73,7 @@ def initialize(datafile, logger, error_handler)
73
73
@attributes = config [ 'attributes' ]
74
74
@events = config [ 'events' ]
75
75
@experiments = config [ 'experiments' ]
76
+ @feature_flags = config . fetch ( 'featureFlags' , [ ] )
76
77
@revision = config [ 'revision' ]
77
78
@audiences = config [ 'audiences' ]
78
79
@groups = config . fetch ( 'groups' , [ ] )
@@ -92,11 +93,21 @@ def initialize(datafile, logger, error_handler)
92
93
@audience_id_map = generate_key_map ( @audiences , 'id' )
93
94
@variation_id_map = { }
94
95
@variation_key_map = { }
96
+ @variation_id_to_variable_usage_map = { }
95
97
@experiment_key_map . each do |key , exp |
96
98
variations = exp . fetch ( 'variations' )
97
99
@variation_id_map [ key ] = generate_key_map ( variations , 'id' )
98
100
@variation_key_map [ key ] = generate_key_map ( variations , 'key' )
101
+
102
+ variations . each do |variation |
103
+ variation_id = variation [ 'id' ]
104
+ variation_variables = variation [ 'variables' ]
105
+ unless variation_variables . nil?
106
+ @variation_id_to_variable_usage_map [ variation_id ] = generate_key_map ( variation_variables , 'id' )
107
+ end
108
+ end
99
109
end
110
+ @feature_flag_key_map = generate_key_map ( @feature_flags , 'key' )
100
111
@parsing_succeeded = true
101
112
end
102
113
0 commit comments