Skip to content

Commit 5636b9d

Browse files
2.0.2 release (#112)
1 parent c1ca00d commit 5636b9d

File tree

5 files changed

+20
-11
lines changed

5 files changed

+20
-11
lines changed

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@ install:
66
- bundle install
77
- bundle exec rake install
88
before_script: "rubocop"
9+
addons:
10+
srcclr: true
911
script: "rake spec"
1012
after_success: "coveralls"

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 2.0.2
2+
June 19th, 2018
3+
4+
- Fix: send impression event for Feature Test when Feature is disabled ([#110](https://github.com/optimizely/ruby-sdk/pull/110)).
5+
16
## 2.0.1
27
April 25th, 2018
38

lib/optimizely.rb

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,6 @@ def is_feature_enabled(feature_flag_key, user_id, attributes = nil)
258258
# Returns True if the feature is enabled.
259259
# False if the feature is disabled.
260260
# False if the feature is not found.
261-
262261
unless @is_valid
263262
logger = SimpleLogger.new
264263
logger.log(Logger::ERROR, InvalidDatafileError.new('is_feature_enabled').message)
@@ -286,22 +285,23 @@ def is_feature_enabled(feature_flag_key, user_id, attributes = nil)
286285
end
287286

288287
variation = decision['variation']
289-
unless variation['featureEnabled']
290-
@logger.log(Logger::INFO,
291-
"Feature '#{feature_flag_key}' is not enabled for user '#{user_id}'.")
292-
return false
293-
end
294-
295288
if decision.source == Optimizely::DecisionService::DECISION_SOURCE_EXPERIMENT
296289
# Send event if Decision came from an experiment.
297290
send_impression(decision.experiment, variation['key'], user_id, attributes)
298291
else
299292
@logger.log(Logger::DEBUG,
300293
"The user '#{user_id}' is not being experimented on in feature '#{feature_flag_key}'.")
301294
end
302-
@logger.log(Logger::INFO, "Feature '#{feature_flag_key}' is enabled for user '#{user_id}'.")
303295

304-
true
296+
if variation['featureEnabled'] == true
297+
@logger.log(Logger::INFO,
298+
"Feature '#{feature_flag_key}' is enabled for user '#{user_id}'.")
299+
return true
300+
else
301+
@logger.log(Logger::INFO,
302+
"Feature '#{feature_flag_key}' is not enabled for user '#{user_id}'.")
303+
return false
304+
end
305305
end
306306

307307
def get_enabled_features(user_id, attributes = nil)

lib/optimizely/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@
1717
#
1818
module Optimizely
1919
CLIENT_ENGINE = 'ruby-sdk'
20-
VERSION = '2.0.1'
20+
VERSION = '2.0.2'
2121
end

spec/project_spec.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,8 @@ class InvalidErrorHandler; end
834834
expect(spy_logger).to have_received(:log).once.with(Logger::INFO, "Feature 'multi_variate_feature' is enabled for user 'test_user'.")
835835
end
836836

837-
it 'should return false, if the user is bucketed into a feature experiment but the featureEnabled property is false' do
837+
it 'should return false and send impression if the user is bucketed into a feature experiment but the featureEnabled property is false' do
838+
allow(project_instance.event_dispatcher).to receive(:dispatch_event).with(instance_of(Optimizely::Event))
838839
experiment_to_return = config_body['experiments'][3]
839840
variation_to_return = experiment_to_return['variations'][1]
840841
decision_to_return = Optimizely::DecisionService::Decision.new(
@@ -846,6 +847,7 @@ class InvalidErrorHandler; end
846847
allow(project_instance.decision_service).to receive(:get_variation_for_feature).and_return(decision_to_return)
847848

848849
expect(project_instance.is_feature_enabled('multi_variate_feature', 'test_user')).to be false
850+
expect(project_instance.event_dispatcher).to have_received(:dispatch_event).with(instance_of(Optimizely::Event)).once
849851
expect(spy_logger).to have_received(:log).once.with(Logger::INFO, "Feature 'multi_variate_feature' is not enabled for user 'test_user'.")
850852
end
851853
end

0 commit comments

Comments
 (0)