Skip to content

Commit 3eaa5de

Browse files
committed
rubocop -a
1 parent 3be74df commit 3eaa5de

File tree

5 files changed

+95
-87
lines changed

5 files changed

+95
-87
lines changed

Gemfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1-
source "https://rubygems.org"
1+
# frozen_string_literal: true
2+
3+
source 'https://rubygems.org'
24

35
gemspec

Rakefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
# frozen_string_literal: true
2+
13
begin
2-
require "rspec/core/rake_task"
4+
require 'rspec/core/rake_task'
35

46
RSpec::Core::RakeTask.new(:spec)
57

lib/rollout.rb

Lines changed: 66 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
require "rollout/version"
2-
require "zlib"
3-
require "set"
4-
require "json"
1+
# frozen_string_literal: true
2+
3+
require 'rollout/version'
4+
require 'zlib'
5+
require 'set'
6+
require 'json'
57

68
class Rollout
79
RAND_BASE = (2**32 - 1) / 100.0
8-
10+
911
class Feature
1012
attr_accessor :groups, :users, :percentage, :data
1113
attr_reader :name, :options
@@ -15,7 +17,7 @@ def initialize(name, string = nil, opts = {})
1517
@name = name
1618

1719
if string
18-
raw_percentage,raw_users,raw_groups,raw_data = string.split('|', 4)
20+
raw_percentage, raw_users, raw_groups, raw_data = string.split('|', 4)
1921
@percentage = raw_percentage.to_f
2022
@users = users_from_string(raw_users)
2123
@groups = groups_from_string(raw_groups)
@@ -26,7 +28,7 @@ def initialize(name, string = nil, opts = {})
2628
end
2729

2830
def serialize
29-
"#{@percentage}|#{@users.to_a.join(",")}|#{@groups.to_a.join(",")}|#{serialize_data}"
31+
"#{@percentage}|#{@users.to_a.join(',')}|#{@groups.to_a.join(',')}|#{serialize_data}"
3032
end
3133

3234
def add_user(user)
@@ -47,8 +49,8 @@ def remove_group(group)
4749
end
4850

4951
def clear
50-
@groups = groups_from_string("")
51-
@users = users_from_string("")
52+
@groups = groups_from_string('')
53+
@users = users_from_string('')
5254
@percentage = 0
5355
@data = {}
5456
end
@@ -58,7 +60,7 @@ def active?(rollout, user)
5860
id = user_id(user)
5961
user_in_percentage?(id) ||
6062
user_in_active_users?(id) ||
61-
user_in_active_group?(user, rollout)
63+
user_in_active_group?(user, rollout)
6264
else
6365
@percentage == 100
6466
end
@@ -77,65 +79,66 @@ def to_hash
7779
end
7880

7981
private
80-
def user_id(user)
81-
if user.is_a?(Integer) || user.is_a?(String)
82-
user.to_s
83-
else
84-
user.send(id_user_by).to_s
85-
end
86-
end
8782

88-
def id_user_by
89-
@options[:id_user_by] || :id
83+
def user_id(user)
84+
if user.is_a?(Integer) || user.is_a?(String)
85+
user.to_s
86+
else
87+
user.send(id_user_by).to_s
9088
end
89+
end
9190

92-
def user_in_percentage?(user)
93-
Zlib.crc32(user_id_for_percentage(user)) < RAND_BASE * @percentage
94-
end
91+
def id_user_by
92+
@options[:id_user_by] || :id
93+
end
9594

96-
def user_id_for_percentage(user)
97-
if @options[:randomize_percentage]
98-
user_id(user).to_s + @name.to_s
99-
else
100-
user_id(user)
101-
end
95+
def user_in_percentage?(user)
96+
Zlib.crc32(user_id_for_percentage(user)) < RAND_BASE * @percentage
97+
end
98+
99+
def user_id_for_percentage(user)
100+
if @options[:randomize_percentage]
101+
user_id(user).to_s + @name.to_s
102+
else
103+
user_id(user)
102104
end
105+
end
103106

104-
def user_in_active_group?(user, rollout)
105-
@groups.any? do |g|
106-
rollout.active_in_group?(g, user)
107-
end
107+
def user_in_active_group?(user, rollout)
108+
@groups.any? do |g|
109+
rollout.active_in_group?(g, user)
108110
end
111+
end
109112

110-
def serialize_data
111-
return "" unless @data.is_a? Hash
113+
def serialize_data
114+
return '' unless @data.is_a? Hash
112115

113-
@data.to_json
114-
end
116+
@data.to_json
117+
end
115118

116-
def users_from_string(raw_users)
117-
users = (raw_users || "").split(",").map(&:to_s)
118-
if @options[:use_sets]
119-
users.to_set
120-
else
121-
users
122-
end
119+
def users_from_string(raw_users)
120+
users = (raw_users || '').split(',').map(&:to_s)
121+
if @options[:use_sets]
122+
users.to_set
123+
else
124+
users
123125
end
126+
end
124127

125-
def groups_from_string(raw_groups)
126-
groups = (raw_groups || "").split(",").map(&:to_sym)
127-
if @options[:use_sets]
128-
groups.to_set
129-
else
130-
groups
131-
end
128+
def groups_from_string(raw_groups)
129+
groups = (raw_groups || '').split(',').map(&:to_sym)
130+
if @options[:use_sets]
131+
groups.to_set
132+
else
133+
groups
132134
end
135+
end
133136
end
134137

135138
def initialize(storage, opts = {})
136139
@storage = storage
137140
@options = opts
138-
@groups = { all: lambda { |user| true } }
141+
@groups = { all: ->(_user) { true } }
139142
end
140143

141144
def activate(feature)
@@ -145,15 +148,13 @@ def activate(feature)
145148
end
146149

147150
def deactivate(feature)
148-
with_feature(feature) do |f|
149-
f.clear
150-
end
151+
with_feature(feature, &:clear)
151152
end
152153

153154
def delete(feature)
154-
features = (@storage.get(features_key) || "").split(",")
155+
features = (@storage.get(features_key) || '').split(',')
155156
features.delete(feature.to_s)
156-
@storage.set(features_key, features.join(","))
157+
@storage.set(features_key, features.join(','))
157158
@storage.del(key(feature))
158159
end
159160

@@ -193,20 +194,20 @@ def deactivate_user(feature, user)
193194

194195
def activate_users(feature, users)
195196
with_feature(feature) do |f|
196-
users.each{|user| f.add_user(user)}
197+
users.each { |user| f.add_user(user) }
197198
end
198199
end
199200

200201
def deactivate_users(feature, users)
201202
with_feature(feature) do |f|
202-
users.each{|user| f.remove_user(user)}
203+
users.each { |user| f.remove_user(user) }
203204
end
204205
end
205206

206207
def set_users(feature, users)
207208
with_feature(feature) do |f|
208209
f.users = []
209-
users.each{|user| f.add_user(user)}
210+
users.each { |user| f.add_user(user) }
210211
end
211212
end
212213

@@ -242,7 +243,7 @@ def deactivate_percentage(feature)
242243

243244
def active_in_group?(group, user)
244245
f = @groups[group.to_sym]
245-
f && f.call(user)
246+
f&.call(user)
246247
end
247248

248249
def get(feature)
@@ -263,12 +264,12 @@ def clear_feature_data(feature)
263264
end
264265

265266
def multi_get(*features)
266-
feature_keys = features.map{ |feature| key(feature) }
267+
feature_keys = features.map { |feature| key(feature) }
267268
@storage.mget(*feature_keys).map.with_index { |string, index| Feature.new(features[index], string, @options) }
268269
end
269270

270271
def features
271-
(@storage.get(features_key) || "").split(",").map(&:to_sym)
272+
(@storage.get(features_key) || '').split(',').map(&:to_sym)
272273
end
273274

274275
def feature_states(user = nil)
@@ -285,7 +286,7 @@ def active_features(user = nil)
285286

286287
def clear!
287288
features.each do |feature|
288-
with_feature(feature) { |f| f.clear }
289+
with_feature(feature, &:clear)
289290
@storage.del(key(feature))
290291
end
291292

@@ -303,7 +304,7 @@ def key(name)
303304
end
304305

305306
def features_key
306-
"feature:__features__"
307+
'feature:__features__'
307308
end
308309

309310
def with_feature(feature)
@@ -314,6 +315,6 @@ def with_feature(feature)
314315

315316
def save(feature)
316317
@storage.set(key(feature.name), feature.serialize)
317-
@storage.set(features_key, (features | [feature.name.to_sym]).join(","))
318+
@storage.set(features_key, (features | [feature.name.to_sym]).join(','))
318319
end
319320
end

lib/rollout/version.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# frozen_string_literal: true
2+
13
class Rollout
2-
VERSION = "2.4.3"
4+
VERSION = '2.4.3'
35
end

rollout.gemspec

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
1-
# -*- encoding: utf-8 -*-
2-
$:.push File.expand_path("../lib", __FILE__)
3-
require "rollout/version"
1+
# frozen_string_literal: true
2+
3+
$LOAD_PATH.push File.expand_path('lib', __dir__)
4+
require 'rollout/version'
45

56
Gem::Specification.new do |spec|
6-
spec.name = "rollout"
7+
spec.name = 'rollout'
78
spec.version = Rollout::VERSION
8-
spec.authors = ["James Golick"]
9-
spec.email = ["[email protected]"]
10-
spec.description = "Feature flippers with redis."
11-
spec.summary = "Feature flippers with redis."
12-
spec.homepage = "https://github.com/FetLife/rollout"
13-
spec.license = "MIT"
9+
spec.authors = ['James Golick']
10+
spec.email = ['[email protected]']
11+
spec.description = 'Feature flippers with redis.'
12+
spec.summary = 'Feature flippers with redis.'
13+
spec.homepage = 'https://github.com/FetLife/rollout'
14+
spec.license = 'MIT'
1415

1516
spec.files = `git ls-files`.split("\n")
1617
spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17-
spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18-
spec.require_paths = ["lib"]
18+
spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19+
spec.require_paths = ['lib']
1920

2021
spec.required_ruby_version = '>= 2.0'
2122

22-
spec.add_dependency "redis", "~> 4.0"
23+
spec.add_dependency 'redis', '~> 4.0'
2324

24-
spec.add_development_dependency "bundler", "~> 1.17"
25-
spec.add_development_dependency "fakeredis"
26-
spec.add_development_dependency "rspec", "~> 3.0"
27-
spec.add_development_dependency "rspec_junit_formatter", "~> 0.4"
28-
spec.add_development_dependency "rubocop", "~> 0.71"
29-
spec.add_development_dependency "simplecov", "~> 0.16"
25+
spec.add_development_dependency 'bundler', '~> 1.17'
26+
spec.add_development_dependency 'fakeredis'
27+
spec.add_development_dependency 'rspec', '~> 3.0'
28+
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
29+
spec.add_development_dependency 'rubocop', '~> 0.71'
30+
spec.add_development_dependency 'simplecov', '~> 0.16'
3031
end

0 commit comments

Comments
 (0)