Skip to content

Commit a2a22e8

Browse files
authored
Parse feature flags (#52)
1 parent 2845e14 commit a2a22e8

File tree

3 files changed

+548
-14
lines changed

3 files changed

+548
-14
lines changed

lib/optimizely/project_config.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@
1818
module Optimizely
1919

2020
V1_CONFIG_VERSION = '1'
21-
V2_CONFIG_VERSION = '2'
2221

23-
SUPPORTED_VERSIONS = [V2_CONFIG_VERSION]
2422
UNSUPPORTED_VERSIONS = [V1_CONFIG_VERSION]
2523

2624
class ProjectConfig
@@ -47,9 +45,11 @@ class ProjectConfig
4745
attr_reader :event_key_map
4846
attr_reader :experiment_id_map
4947
attr_reader :experiment_key_map
48+
attr_reader :feature_flag_key_map
5049
attr_reader :group_key_map
5150
attr_reader :audience_id_map
5251
attr_reader :variation_id_map
52+
attr_reader :variation_id_to_variable_usage_map
5353
attr_reader :variation_key_map
5454

5555
def initialize(datafile, logger, error_handler)
@@ -73,6 +73,7 @@ def initialize(datafile, logger, error_handler)
7373
@attributes = config['attributes']
7474
@events = config['events']
7575
@experiments = config['experiments']
76+
@feature_flags = config.fetch('featureFlags', [])
7677
@revision = config['revision']
7778
@audiences = config['audiences']
7879
@groups = config.fetch('groups', [])
@@ -92,11 +93,21 @@ def initialize(datafile, logger, error_handler)
9293
@audience_id_map = generate_key_map(@audiences, 'id')
9394
@variation_id_map = {}
9495
@variation_key_map = {}
96+
@variation_id_to_variable_usage_map = {}
9597
@experiment_key_map.each do |key, exp|
9698
variations = exp.fetch('variations')
9799
@variation_id_map[key] = generate_key_map(variations, 'id')
98100
@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
99109
end
110+
@feature_flag_key_map = generate_key_map(@feature_flags, 'key')
100111
@parsing_succeeded = true
101112
end
102113

0 commit comments

Comments
 (0)