Skip to content

Commit 07659b4

Browse files
Adam Panzermikeproeng37
authored andcommitted
test: Test against ruby version(s) (#133)
1 parent 9d2c835 commit 07659b4

File tree

10 files changed

+35
-12
lines changed

10 files changed

+35
-12
lines changed

.travis.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1+
branch:
2+
only:
3+
- master
14
language: ruby
25
rvm:
3-
- 2.3.1
4-
before_install: gem install bundler -v 1.10.6
6+
- 2.3.7
7+
- 2.4.4
8+
- 2.5.1
9+
before_install: gem install bundler
510
install:
611
- bundle install
7-
- bundle exec rake install
12+
script: "bundle exec rake spec"
813
before_script: "rubocop"
914
addons:
1015
srcclr: true
11-
script: "rake spec"
1216
after_success: "coveralls"

Gemfile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,3 @@ source 'https://rubygems.org'
44

55
# Specify your gem's dependencies in optimizely-sdk.gemspec
66
gemspec
7-
gem 'coveralls', require: false
8-
gem 'murmurhash3'
9-
gem 'webmock'

lib/optimizely/condition.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ def evaluate(conditions)
103103
if conditions.is_a? Array
104104
operator_type = conditions[0]
105105
return false unless DEFAULT_OPERATOR_TYPES.include?(operator_type)
106+
106107
case operator_type
107108
when ConditionalOperatorTypes::AND
108109
return and_evaluator(conditions[1..-1])

lib/optimizely/decision_service.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ def get_variation_for_feature_experiment(feature_flag, user_id, attributes = nil
166166
variation_id = get_variation(experiment_key, user_id, attributes)
167167

168168
next unless variation_id
169+
169170
variation = @config.variation_id_map[experiment_key][variation_id]
170171
@config.logger.log(
171172
Logger::INFO,
@@ -236,6 +237,7 @@ def get_variation_for_feature_rollout(feature_flag, user_id, attributes = nil)
236237
# Evaluate if user satisfies the traffic allocation for this rollout rule
237238
variation = @bucketer.bucket(rollout_rule, bucketing_id, user_id)
238239
return Decision.new(rollout_rule, variation, DECISION_SOURCE_ROLLOUT) unless variation.nil?
240+
239241
break
240242
end
241243

@@ -254,6 +256,7 @@ def get_variation_for_feature_rollout(feature_flag, user_id, attributes = nil)
254256
end
255257
variation = @bucketer.bucket(everyone_else_experiment, bucketing_id, user_id)
256258
return Decision.new(everyone_else_experiment, variation, DECISION_SOURCE_ROLLOUT) unless variation.nil?
259+
257260
nil
258261
end
259262

@@ -303,6 +306,7 @@ def get_saved_variation_id(experiment_id, user_profile)
303306

304307
decision = user_profile[:experiment_bucket_map][experiment_id]
305308
return nil unless decision
309+
306310
variation_id = decision[:variation_id]
307311
return variation_id if @config.variation_id_exists?(experiment_id, variation_id)
308312

lib/optimizely/event_builder.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ def get_conversion_params(event_key, event_tags, experiment_variation_map)
201201
single_snapshot[:decisions] = []
202202
experiment_variation_map.each do |experiment_id, variation_id|
203203
next unless variation_id
204+
204205
single_snapshot[:decisions].push(
205206
campaign_id: @config.experiment_id_map[experiment_id]['layerId'],
206207
experiment_id: experiment_id,

lib/optimizely/helpers/validator.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,11 @@ def inputs_valid?(variables, logger = NoOpLogger.new, level = Logger::ERROR)
106106
# Returns boolean True if all of the values are valid, False otherwise.
107107

108108
return false unless variables.respond_to?(:each) && !variables.empty?
109+
109110
is_valid = true
110111
variables.each do |key, value|
111112
next if value.is_a?(String) && !value.empty?
113+
112114
is_valid = false
113115
if logger_valid?(logger) && level
114116
logger.log(level, "#{Optimizely::Helpers::Constants::INPUT_VARIABLES[key.to_s.upcase]} is invalid")

lib/optimizely/notification_center.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ def initialize(logger, error_handler)
4242

4343
def add_notification_listener(notification_type, notification_callback)
4444
return nil unless notification_type_valid?(notification_type)
45+
4546
unless notification_callback
4647
@logger.log Logger::ERROR, 'Callback can not be empty.'
4748
return nil

lib/optimizely/project_config.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ def get_experiment_from_key(experiment_key)
161161

162162
experiment = @experiment_key_map[experiment_key]
163163
return experiment if experiment
164+
164165
@logger.log Logger::ERROR, "Experiment key '#{experiment_key}' is not in datafile."
165166
@error_handler.handle_error InvalidExperimentError
166167
nil
@@ -175,6 +176,7 @@ def get_experiment_key(experiment_id)
175176

176177
experiment = @experiment_id_map[experiment_id]
177178
return experiment['key'] unless experiment.nil?
179+
178180
@logger.log Logger::ERROR, "Experiment id '#{experiment_id}' is not in datafile."
179181
@error_handler.handle_error InvalidExperimentError
180182
nil
@@ -189,6 +191,7 @@ def get_experiment_ids_for_event(event_key)
189191

190192
event = @event_key_map[event_key]
191193
return event['experimentIds'] if event
194+
192195
@logger.log Logger::ERROR, "Event '#{event_key}' is not in datafile."
193196
@error_handler.handle_error InvalidEventError
194197
[]
@@ -203,6 +206,7 @@ def get_audience_from_id(audience_id)
203206

204207
audience = @audience_id_map[audience_id]
205208
return audience if audience
209+
206210
@logger.log Logger::ERROR, "Audience '#{audience_id}' is not in datafile."
207211
@error_handler.handle_error InvalidAudienceError
208212
nil
@@ -220,6 +224,7 @@ def get_variation_from_id(experiment_key, variation_id)
220224
if variation_id_map
221225
variation = variation_id_map[variation_id]
222226
return variation if variation
227+
223228
@logger.log Logger::ERROR, "Variation id '#{variation_id}' is not in datafile."
224229
@error_handler.handle_error InvalidVariationError
225230
return nil
@@ -242,6 +247,7 @@ def get_variation_id_from_key(experiment_key, variation_key)
242247
if variation_key_map
243248
variation = variation_key_map[variation_key]
244249
return variation['id'] if variation
250+
245251
@logger.log Logger::ERROR, "Variation key '#{variation_key}' is not in datafile."
246252
@error_handler.handle_error InvalidVariationError
247253
return nil
@@ -261,6 +267,7 @@ def get_whitelisted_variations(experiment_key)
261267

262268
experiment = @experiment_key_map[experiment_key]
263269
return experiment['forcedVariations'] if experiment
270+
264271
@logger.log Logger::ERROR, "Experiment key '#{experiment_key}' is not in datafile."
265272
@error_handler.handle_error InvalidExperimentError
266273
end
@@ -377,6 +384,7 @@ def get_attribute_id(attribute_key)
377384
return attribute['id']
378385
end
379386
return attribute_key if has_reserved_prefix
387+
380388
@logger.log Logger::ERROR, "Attribute key '#{attribute_key}' is not in datafile."
381389
@error_handler.handle_error InvalidAttributeError
382390
nil
@@ -395,6 +403,7 @@ def variation_id_exists?(experiment_id, variation_id)
395403
if variation_id_map
396404
variation = variation_id_map[variation_id]
397405
return true if variation
406+
398407
@logger.log Logger::ERROR, "Variation ID '#{variation_id}' is not in datafile."
399408
@error_handler.handle_error InvalidVariationError
400409
end
@@ -410,6 +419,7 @@ def get_feature_flag_from_key(feature_flag_key)
410419
# Returns feature flag if found, otherwise nil
411420
feature_flag = @feature_flag_key_map[feature_flag_key]
412421
return feature_flag if feature_flag
422+
413423
@logger.log Logger::ERROR, "Feature flag key '#{feature_flag_key}' is not in datafile."
414424
nil
415425
end
@@ -424,6 +434,7 @@ def get_feature_variable(feature_flag, variable_key)
424434
feature_flag_key = feature_flag['key']
425435
variable = @feature_variable_key_map[feature_flag_key][variable_key]
426436
return variable if variable
437+
427438
@logger.log Logger::ERROR, "No feature variable was found for key '#{variable_key}' in feature flag "\
428439
"'#{feature_flag_key}'."
429440
nil
@@ -437,6 +448,7 @@ def get_rollout_from_id(rollout_id)
437448
# Returns the rollout if found, otherwise nil
438449
rollout = @rollout_id_map[rollout_id]
439450
return rollout if rollout
451+
440452
@logger.log Logger::ERROR, "Rollout with ID '#{rollout_id}' is not in the datafile."
441453
nil
442454
end

optimizely-sdk.gemspec

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@ Gem::Specification.new do |spec|
1616
spec.files = Dir['lib/**/*']
1717
spec.require_paths = ['lib']
1818

19-
spec.add_development_dependency 'bundler', '~> 1.10'
20-
spec.add_development_dependency 'rake', '~> 12.0'
21-
spec.add_development_dependency 'rspec', '~> 3.8.0'
22-
spec.add_development_dependency 'rubocop', '~> 0.58.0'
19+
spec.add_development_dependency 'bundler'
20+
spec.add_development_dependency 'coveralls'
21+
spec.add_development_dependency 'rake'
22+
spec.add_development_dependency 'rspec'
23+
spec.add_development_dependency 'rubocop'
24+
spec.add_development_dependency 'webmock'
2325

2426
spec.add_runtime_dependency 'httparty', '~> 0.11'
2527
spec.add_runtime_dependency 'json-schema', '~> 2.6'

spec/spec_helper.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,4 @@
2020
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
2121
require 'optimizely'
2222
require 'spec_params'
23-
2423
require 'webmock/rspec'

0 commit comments

Comments
 (0)