Skip to content

Commit

Permalink
2.0.2 release (#112)
Browse files Browse the repository at this point in the history
  • Loading branch information
aliabbasrizvi authored Jun 19, 2018
1 parent c1ca00d commit 5636b9d
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 11 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,7 @@ install:
- bundle install
- bundle exec rake install
before_script: "rubocop"
addons:
srcclr: true
script: "rake spec"
after_success: "coveralls"
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 2.0.2
June 19th, 2018

- Fix: send impression event for Feature Test when Feature is disabled ([#110](https://github.com/optimizely/ruby-sdk/pull/110)).

## 2.0.1
April 25th, 2018

Expand Down
18 changes: 9 additions & 9 deletions lib/optimizely.rb
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,6 @@ def is_feature_enabled(feature_flag_key, user_id, attributes = nil)
# Returns True if the feature is enabled.
# False if the feature is disabled.
# False if the feature is not found.

unless @is_valid
logger = SimpleLogger.new
logger.log(Logger::ERROR, InvalidDatafileError.new('is_feature_enabled').message)
Expand Down Expand Up @@ -286,22 +285,23 @@ def is_feature_enabled(feature_flag_key, user_id, attributes = nil)
end

variation = decision['variation']
unless variation['featureEnabled']
@logger.log(Logger::INFO,
"Feature '#{feature_flag_key}' is not enabled for user '#{user_id}'.")
return false
end

if decision.source == Optimizely::DecisionService::DECISION_SOURCE_EXPERIMENT
# Send event if Decision came from an experiment.
send_impression(decision.experiment, variation['key'], user_id, attributes)
else
@logger.log(Logger::DEBUG,
"The user '#{user_id}' is not being experimented on in feature '#{feature_flag_key}'.")
end
@logger.log(Logger::INFO, "Feature '#{feature_flag_key}' is enabled for user '#{user_id}'.")

true
if variation['featureEnabled'] == true
@logger.log(Logger::INFO,
"Feature '#{feature_flag_key}' is enabled for user '#{user_id}'.")
return true
else
@logger.log(Logger::INFO,
"Feature '#{feature_flag_key}' is not enabled for user '#{user_id}'.")
return false
end
end

def get_enabled_features(user_id, attributes = nil)
Expand Down
2 changes: 1 addition & 1 deletion lib/optimizely/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@
#
module Optimizely
CLIENT_ENGINE = 'ruby-sdk'
VERSION = '2.0.1'
VERSION = '2.0.2'
end
4 changes: 3 additions & 1 deletion spec/project_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -834,7 +834,8 @@ class InvalidErrorHandler; end
expect(spy_logger).to have_received(:log).once.with(Logger::INFO, "Feature 'multi_variate_feature' is enabled for user 'test_user'.")
end

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

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

0 comments on commit 5636b9d

Please sign in to comment.