@@ -33,7 +33,7 @@ module Optimizely
33
33
class HTTPProjectConfigManager < ProjectConfigManager
34
34
# Config manager that polls for the datafile and updated ProjectConfig based on an update interval.
35
35
36
- attr_reader :stopped , :optimizely_config
36
+ attr_reader :stopped
37
37
38
38
# Initialize config manager. One of sdk_key or url has to be set to be able to use.
39
39
#
@@ -80,8 +80,8 @@ def initialize(
80
80
@last_modified = nil
81
81
@skip_json_validation = skip_json_validation
82
82
@notification_center = notification_center . is_a? ( Optimizely ::NotificationCenter ) ? notification_center : NotificationCenter . new ( @logger , @error_handler )
83
+ @optimizely_config = nil
83
84
@config = datafile . nil? ? nil : DatafileProjectConfig . create ( datafile , @logger , @error_handler , @skip_json_validation )
84
- @optimizely_config = @config . nil? ? nil : OptimizelyConfig . new ( @config ) . config
85
85
@mutex = Mutex . new
86
86
@resource = ConditionVariable . new
87
87
@async_scheduler = AsyncScheduler . new ( method ( :fetch_datafile_config ) , @polling_interval , auto_update , @logger )
@@ -140,6 +140,12 @@ def config
140
140
@config
141
141
end
142
142
143
+ def optimizely_config
144
+ @optimizely_config = OptimizelyConfig . new ( @config ) . config if @optimizely_config . nil?
145
+
146
+ @optimizely_config
147
+ end
148
+
143
149
private
144
150
145
151
def fetch_datafile_config
@@ -209,7 +215,9 @@ def set_config(config)
209
215
end
210
216
211
217
@config = config
212
- @optimizely_config = OptimizelyConfig . new ( config ) . config
218
+
219
+ # clearing old optimizely config so that a fresh one is generated on the next api call.
220
+ @optimizely_config = nil
213
221
214
222
@notification_center . send_notifications ( NotificationCenter ::NOTIFICATION_TYPES [ :OPTIMIZELY_CONFIG_UPDATE ] )
215
223
0 commit comments