8000 feat: added "enabled" field to decision metadata structure (#275) · mikechu-optimizely/ruby-sdk@73fdcf6 · GitHub
[go: up one dir, main page]

Skip to content

Commit 73fdcf6

Browse files
authored
feat: added "enabled" field to decision metadata structure (optimizely#275)
1 parent b97c41e commit 73fdcf6

File tree

2 files changed

+25
-15
lines changed

2 files changed

+25
-15
lines changed

lib/optimizely.rb

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def activate(experiment_key, user_id, attributes = nil)
141141
# Create and dispatch impression event
142142
experiment = config.get_experiment_from_key(experiment_key)
143143
send_impression(
144-
config, experiment, variation_key, '', experiment_key,
144+
config, experiment, variation_key, '', experiment_key, true,
145145
Optimizely::DecisionService::DECISION_SOURCES['EXPERIMENT'], user_id, attributes
146146
)
147147

@@ -321,18 +321,18 @@ def is_feature_enabled(feature_flag_key, user_id, attributes = nil)
321321
}
322322
# Send event if Decision came from a feature test.
323323
send_impression(
324-
config, decision.experiment, variation['key'], feature_flag_key, decision.experiment['key'], source_string, user_id, attributes
324+
config, decision.experiment, variation['key'], feature_flag_key, decision.experiment['key'], feature_enabled, source_string, user_id, attributes
325325
)
326326
elsif decision.source == Optimizely::DecisionService::DECISION_SOURCES['ROLLOUT'] && config.send_flag_decisions
327327
send_impression(
328-
config, decision.experiment, variation['key'], feature_flag_key, decision.experiment['key'], source_string, user_id, attributes
328+
config, decision.experiment, variation['key'], feature_flag_key, decision.experiment['key'], feature_enabled, source_string, user_id, attributes
329329
)
330330
end
331331
end
332332

333333
if decision.nil? && config.send_flag_decisions
334334
send_impression(
335-
config, nil, '', feature_flag_key, '', source_string, user_id, attributes
335+
config, nil, '', feature_flag_key, '', feature_enabled, source_string, user_id, attributes
336336
)
337337
end
338338

@@ -879,7 +879,7 @@ def validate_instantiation_options
879879
raise InvalidInputError, 'event_dispatcher'
880880
end
881881

882-
def send_impression(config, experiment, variation_key, flag_key, rule_key, rule_type, user_id, attributes = nil)
882+
def send_impression(config, experiment, variation_key, flag_key, rule_key, enabled, rule_type, user_id, attributes = nil)
883883
if experiment.nil?
884884
experiment = {
885885
'id' => '',
@@ -903,7 +903,8 @@ def send_impression(config, experiment, variation_key, flag_key, rule_key, rule_
903903
flag_key: flag_key,
904904
rule_key: rule_key,
905905
rule_type: rule_type,
906-
variation_key: variation_key
906+
variation_key: variation_key,
907+
enabled: enabled
907908
}
908909

909910
user_event = UserEventFactory.create_impression_event(config, experiment, variation_id, metadata, user_id, attributes)

spec/project_spec.rb

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ class InvalidErrorHandler; end
159159
flag_key: '',
160160
rule_key: 'test_experiment',
161161
rule_type: 'experiment',
162-
variation_key: 'control'
162+
variation_key: 'control',
163+
enabled: true
163164
}
164165
}],
165166
events: [{
@@ -232,7 +233,8 @@ class InvalidErrorHandler; end
232233
flag_key: '',
233234
rule_key: 'test_experiment_with_audience',
234235
rule_type: 'experiment',
235-
variation_key: 'control_with_audience'
236+
variation_key: 'control_with_audience',
237+
enabled: true
236238
}
237239

238240
variation_to_return = project_config.get_variation_from_id('test_experiment_with_audience', '122228')
@@ -307,7 +309,8 @@ class InvalidErrorHandler; end
307309
flag_key: '',
308310
rule_key: 'typed_audience_experiment',
309311
rule_type: 'experiment',
310-
variation_key: variation_to_return['key']
312+
variation_key: variation_to_return['key'],
313+
enabled: true
311314
}
312315

313316
allow(@project_typed_audience_instance.decision_service.bucketer).to receive(:bucket).and_return(variation_to_return)
@@ -342,7 +345,8 @@ class InvalidErrorHandler; end
342345
flag_key: '',
343346
rule_key: 'typed_audience_experiment',
344347
rule_type: 'experiment',
345-
variation_key: variation_to_return['key']
348+
variation_key: variation_to_return['key'],
349+
enabled: true
346350
}
347351

348352
allow(@project_typed_audience_instance.decision_service.bucketer).to receive(:bucket).and_return(variation_to_return)
@@ -399,7 +403,8 @@ class InvalidErrorHandler; end
399403
flag_key: '',
400404
rule_key: 'audience_combinations_experiment',
401405
rule_type: 'experiment',
402-
variation_key: variation_to_return['key']
406+
variation_key: variation_to_return['key'],
407+
enabled: true
403408
}
404409

405410
allow(@project_typed_audience_instance.decision_service.bucketer).to receive(:bucket).and_return(variation_to_return)
@@ -459,7 +464,8 @@ class InvalidErrorHandler; end
459464
flag_key: '',
460465
rule_key: 'test_experiment_with_audience',
461466
rule_type: 'experiment',
462-
variation_key: 'control_with_audience'
467+
variation_key: 'control_with_audience',
468+
enabled: true
463469
}
464470

465471
variation_to_return = project_config.get_variation_from_id('test_experiment_with_audience', '122228')
@@ -504,7 +510,8 @@ class InvalidErrorHandler; end
504510
flag_key: '',
505511
rule_key: 'test_experiment_with_audience',
506512
rule_type: 'experiment',
507-
variation_key: 'control_with_audience'
513+
variation_key: 'control_with_audience',
514+
enabled: true
508515
}
509516

510517
variation_to_return = project_config.get_variation_from_id('test_experiment_with_audience', '122228')
@@ -546,7 +553,8 @@ class InvalidErrorHandler; end
546553
flag_key: '',
547554
rule_key: 'test_experiment_with_audience',
548555
rule_type: 'experiment',
549-
variation_key: 'variation_with_audience'
556+
variation_key: 'variation_with_audience',
557+
enabled: true
550558
}
551559

552560
allow(project_instance.decision_service.bucketer).to receive(:bucket).and_return(variation_to_return)
@@ -718,7 6A29 +726,8 @@ def callback(_args); end
718726
flag_key: '',
719727
rule_key: 'test_experiment_with_audience',
720728
rule_type: 'experiment',
721-
variation_key: 'variation_with_audience'
729+
variation_key: 'variation_with_audience',
730+
enabled: true
722731
}
723732

724733
allow(project_instance.event_dispatcher).to receive(:dispatch_event).with(instance_of(Optimizely::Event))

0 commit comments

Comments
 (0)
0