split 4.0.0.pre2 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +14 -1
  3. data/.rubocop.yml +2 -5
  4. data/CHANGELOG.md +26 -2
  5. data/CONTRIBUTING.md +1 -1
  6. data/Gemfile +2 -1
  7. data/README.md +4 -2
  8. data/Rakefile +4 -5
  9. data/gemfiles/5.2.gemfile +1 -3
  10. data/gemfiles/6.0.gemfile +1 -3
  11. data/gemfiles/{5.0.gemfile → 6.1.gemfile} +2 -4
  12. data/gemfiles/{5.1.gemfile → 7.0.gemfile} +3 -4
  13. data/lib/split/algorithms/block_randomization.rb +5 -6
  14. data/lib/split/algorithms/whiplash.rb +16 -18
  15. data/lib/split/algorithms.rb +22 -0
  16. data/lib/split/alternative.rb +21 -22
  17. data/lib/split/cache.rb +0 -1
  18. data/lib/split/combined_experiments_helper.rb +4 -4
  19. data/lib/split/configuration.rb +83 -84
  20. data/lib/split/dashboard/helpers.rb +6 -7
  21. data/lib/split/dashboard/pagination_helpers.rb +53 -54
  22. data/lib/split/dashboard/public/style.css +5 -2
  23. data/lib/split/dashboard/views/index.erb +19 -4
  24. data/lib/split/dashboard.rb +29 -23
  25. data/lib/split/encapsulated_helper.rb +4 -6
  26. data/lib/split/experiment.rb +84 -88
  27. data/lib/split/experiment_catalog.rb +6 -5
  28. data/lib/split/extensions/string.rb +1 -1
  29. data/lib/split/goals_collection.rb +8 -10
  30. data/lib/split/helper.rb +19 -19
  31. data/lib/split/metric.rb +4 -5
  32. data/lib/split/persistence/cookie_adapter.rb +44 -47
  33. data/lib/split/persistence/dual_adapter.rb +7 -8
  34. data/lib/split/persistence/redis_adapter.rb +2 -3
  35. data/lib/split/persistence/session_adapter.rb +0 -2
  36. data/lib/split/persistence.rb +4 -4
  37. data/lib/split/redis_interface.rb +1 -2
  38. data/lib/split/trial.rb +23 -24
  39. data/lib/split/user.rb +12 -13
  40. data/lib/split/version.rb +1 -1
  41. data/lib/split/zscore.rb +1 -3
  42. data/lib/split.rb +26 -25
  43. data/spec/algorithms/block_randomization_spec.rb +6 -5
  44. data/spec/algorithms/weighted_sample_spec.rb +6 -5
  45. data/spec/algorithms/whiplash_spec.rb +4 -5
  46. data/spec/alternative_spec.rb +35 -36
  47. data/spec/cache_spec.rb +15 -19
  48. data/spec/combined_experiments_helper_spec.rb +18 -17
  49. data/spec/configuration_spec.rb +32 -38
  50. data/spec/dashboard/pagination_helpers_spec.rb +69 -67
  51. data/spec/dashboard/paginator_spec.rb +10 -9
  52. data/spec/dashboard_helpers_spec.rb +19 -18
  53. data/spec/dashboard_spec.rb +67 -35
  54. data/spec/encapsulated_helper_spec.rb +12 -14
  55. data/spec/experiment_catalog_spec.rb +14 -13
  56. data/spec/experiment_spec.rb +121 -123
  57. data/spec/goals_collection_spec.rb +17 -15
  58. data/spec/helper_spec.rb +379 -382
  59. data/spec/metric_spec.rb +14 -14
  60. data/spec/persistence/cookie_adapter_spec.rb +23 -8
  61. data/spec/persistence/dual_adapter_spec.rb +71 -71
  62. data/spec/persistence/redis_adapter_spec.rb +25 -26
  63. data/spec/persistence/session_adapter_spec.rb +2 -3
  64. data/spec/persistence_spec.rb +1 -2
  65. data/spec/redis_interface_spec.rb +16 -14
  66. data/spec/spec_helper.rb +15 -13
  67. data/spec/split_spec.rb +11 -11
  68. data/spec/support/cookies_mock.rb +1 -2
  69. data/spec/trial_spec.rb +61 -60
  70. data/spec/user_spec.rb +36 -36
  71. data/split.gemspec +20 -20
  72. metadata +9 -10
  73. data/.rubocop_todo.yml +0 -226
  74. data/Appraisals +0 -19
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: split
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.pre2
4
+ version: 4.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-07 00:00:00.000000000 Z
11
+ date: 2022-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.1'
89
+ version: '2.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '1.1'
96
+ version: '2.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -168,8 +168,6 @@ files:
168
168
  - ".gitignore"
169
169
  - ".rspec"
170
170
  - ".rubocop.yml"
171
- - ".rubocop_todo.yml"
172
- - Appraisals
173
171
  - CHANGELOG.md
174
172
  - CODE_OF_CONDUCT.md
175
173
  - CONTRIBUTING.md
@@ -177,11 +175,12 @@ files:
177
175
  - LICENSE
178
176
  - README.md
179
177
  - Rakefile
180
- - gemfiles/5.0.gemfile
181
- - gemfiles/5.1.gemfile
182
178
  - gemfiles/5.2.gemfile
183
179
  - gemfiles/6.0.gemfile
180
+ - gemfiles/6.1.gemfile
181
+ - gemfiles/7.0.gemfile
184
182
  - lib/split.rb
183
+ - lib/split/algorithms.rb
185
184
  - lib/split/algorithms/block_randomization.rb
186
185
  - lib/split/algorithms/weighted_sample.rb
187
186
  - lib/split/algorithms/whiplash.rb
@@ -256,7 +255,7 @@ licenses:
256
255
  - MIT
257
256
  metadata:
258
257
  homepage_uri: https://github.com/splitrb/split
259
- changelog_uri: https://github.com/splitrb/split/blob/master/CHANGELOG.md
258
+ changelog_uri: https://github.com/splitrb/split/blob/main/CHANGELOG.md
260
259
  source_code_uri: https://github.com/splitrb/split
261
260
  bug_tracker_uri: https://github.com/splitrb/split/issues
262
261
  wiki_uri: https://github.com/splitrb/split/wiki
@@ -276,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
276
275
  - !ruby/object:Gem::Version
277
276
  version: 2.0.0
278
277
  requirements: []
279
- rubygems_version: 3.1.4
278
+ rubygems_version: 3.3.7
280
279
  signing_key:
281
280
  specification_version: 4
282
281
  summary: Rack based split testing framework
data/.rubocop_todo.yml DELETED
@@ -1,226 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2020-07-05 01:43:26 UTC using RuboCop version 0.86.0.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 1
10
- # Cop supports --auto-correct.
11
- Layout/CommentIndentation:
12
- Exclude:
13
- - 'lib/split/experiment.rb'
14
-
15
- # Offense count: 1
16
- # Cop supports --auto-correct.
17
- Layout/ElseAlignment:
18
- Exclude:
19
- - 'lib/split/experiment.rb'
20
-
21
- # Offense count: 14
22
- # Cop supports --auto-correct.
23
- # Configuration parameters: EnforcedStyle.
24
- # SupportedStyles: around, only_before
25
- Layout/EmptyLinesAroundAccessModifier:
26
- Exclude:
27
- - 'lib/split/algorithms/block_randomization.rb'
28
- - 'lib/split/algorithms/whiplash.rb'
29
- - 'lib/split/alternative.rb'
30
- - 'lib/split/configuration.rb'
31
- - 'lib/split/dashboard/pagination_helpers.rb'
32
- - 'lib/split/encapsulated_helper.rb'
33
- - 'lib/split/experiment.rb'
34
- - 'lib/split/goals_collection.rb'
35
- - 'lib/split/persistence/cookie_adapter.rb'
36
- - 'lib/split/persistence/dual_adapter.rb'
37
- - 'lib/split/redis_interface.rb'
38
- - 'lib/split/trial.rb'
39
- - 'lib/split/user.rb'
40
-
41
- # Offense count: 8
42
- # Cop supports --auto-correct.
43
- # Configuration parameters: EnforcedStyle.
44
- # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines, beginning_only, ending_only
45
- Layout/EmptyLinesAroundClassBody:
46
- Exclude:
47
- - 'lib/split/experiment_catalog.rb'
48
- - 'lib/split/goals_collection.rb'
49
- - 'lib/split/metric.rb'
50
- - 'lib/split/persistence/cookie_adapter.rb'
51
- - 'lib/split/persistence/redis_adapter.rb'
52
- - 'lib/split/persistence/session_adapter.rb'
53
- - 'lib/split/zscore.rb'
54
-
55
- # Offense count: 2
56
- # Cop supports --auto-correct.
57
- Layout/EmptyLinesAroundMethodBody:
58
- Exclude:
59
- - 'lib/split/dashboard/helpers.rb'
60
- - 'lib/split/zscore.rb'
61
-
62
- # Offense count: 1
63
- # Cop supports --auto-correct.
64
- # Configuration parameters: EnforcedStyle.
65
- # SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
66
- Layout/EmptyLinesAroundModuleBody:
67
- Exclude:
68
- - 'lib/split/encapsulated_helper.rb'
69
-
70
- # Offense count: 4
71
- # Cop supports --auto-correct.
72
- # Configuration parameters: EnforcedStyleAlignWith, AutoCorrect, Severity.
73
- # SupportedStylesAlignWith: keyword, variable, start_of_line
74
- Layout/EndAlignment:
75
- Exclude:
76
- - 'lib/split/configuration.rb'
77
- - 'lib/split/experiment.rb'
78
- - 'lib/split/trial.rb'
79
-
80
- # Offense count: 17
81
- # Cop supports --auto-correct.
82
- # Configuration parameters: Width, IgnoredPatterns.
83
- Layout/IndentationWidth:
84
- Exclude:
85
- - 'lib/split/algorithms/block_randomization.rb'
86
- - 'lib/split/algorithms/whiplash.rb'
87
- - 'lib/split/alternative.rb'
88
- - 'lib/split/configuration.rb'
89
- - 'lib/split/dashboard/pagination_helpers.rb'
90
- - 'lib/split/encapsulated_helper.rb'
91
- - 'lib/split/experiment.rb'
92
- - 'lib/split/goals_collection.rb'
93
- - 'lib/split/persistence/cookie_adapter.rb'
94
- - 'lib/split/persistence/dual_adapter.rb'
95
- - 'lib/split/redis_interface.rb'
96
- - 'lib/split/trial.rb'
97
- - 'lib/split/user.rb'
98
-
99
- # Offense count: 4
100
- # Cop supports --auto-correct.
101
- # Configuration parameters: EnforcedStyle.
102
- # SupportedStyles: space, no_space
103
- Layout/SpaceAroundEqualsInParameterDefault:
104
- Exclude:
105
- - 'lib/split/goals_collection.rb'
106
- - 'lib/split/persistence/dual_adapter.rb'
107
- - 'lib/split/persistence/redis_adapter.rb'
108
- - 'lib/split/user.rb'
109
-
110
- # Offense count: 15
111
- # Cop supports --auto-correct.
112
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
113
- # SupportedStyles: space, no_space
114
- # SupportedStylesForEmptyBraces: space, no_space
115
- Layout/SpaceBeforeBlockBraces:
116
- Exclude:
117
- - 'lib/split/configuration.rb'
118
- - 'lib/split/experiment.rb'
119
- - 'lib/split/experiment_catalog.rb'
120
- - 'lib/split/helper.rb'
121
- - 'lib/split/trial.rb'
122
-
123
- # Offense count: 35
124
- # Cop supports --auto-correct.
125
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
126
- # SupportedStyles: space, no_space
127
- # SupportedStylesForEmptyBraces: space, no_space
128
- Layout/SpaceInsideBlockBraces:
129
- Exclude:
130
- - 'lib/split.rb'
131
- - 'lib/split/configuration.rb'
132
- - 'lib/split/experiment.rb'
133
- - 'lib/split/experiment_catalog.rb'
134
- - 'lib/split/helper.rb'
135
- - 'lib/split/trial.rb'
136
- - 'lib/split/user.rb'
137
-
138
- # Offense count: 10
139
- # Cop supports --auto-correct.
140
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
141
- # SupportedStyles: space, no_space, compact
142
- # SupportedStylesForEmptyBraces: space, no_space
143
- Layout/SpaceInsideHashLiteralBraces:
144
- Exclude:
145
- - 'lib/split/experiment.rb'
146
- - 'lib/split/helper.rb'
147
- - 'lib/split/persistence/redis_adapter.rb'
148
-
149
- # Offense count: 1
150
- # Cop supports --auto-correct.
151
- # Configuration parameters: EnforcedStyle.
152
- # SupportedStyles: final_newline, final_blank_line
153
- Layout/TrailingEmptyLines:
154
- Exclude:
155
- - 'Rakefile'
156
-
157
- # Offense count: 3
158
- # Cop supports --auto-correct.
159
- # Configuration parameters: AllowInHeredoc.
160
- Layout/TrailingWhitespace:
161
- Exclude:
162
- - 'lib/split/helper.rb'
163
-
164
- # Offense count: 1
165
- Lint/UselessAssignment:
166
- Exclude:
167
- - 'lib/split/goals_collection.rb'
168
-
169
- # Offense count: 1
170
- # Cop supports --auto-correct.
171
- # Configuration parameters: EnforcedStyle.
172
- # SupportedStyles: always, conditionals
173
- Style/AndOr:
174
- Exclude:
175
- - 'lib/split/experiment_catalog.rb'
176
-
177
- # Offense count: 1
178
- # Cop supports --auto-correct.
179
- Style/ColonMethodCall:
180
- Exclude:
181
- - 'lib/split/combined_experiments_helper.rb'
182
-
183
- # Offense count: 1
184
- # Cop supports --auto-correct.
185
- Style/DefWithParentheses:
186
- Exclude:
187
- - 'lib/split/helper.rb'
188
-
189
- # Offense count: 23
190
- # Cop supports --auto-correct.
191
- # Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
192
- # SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
193
- Style/HashSyntax:
194
- Exclude:
195
- - 'Rakefile'
196
- - 'lib/split/experiment.rb'
197
- - 'lib/split/experiment_catalog.rb'
198
- - 'lib/split/helper.rb'
199
- - 'lib/split/metric.rb'
200
- - 'lib/split/persistence.rb'
201
- - 'lib/split/persistence/redis_adapter.rb'
202
-
203
- # Offense count: 1
204
- # Cop supports --auto-correct.
205
- # Configuration parameters: EnforcedStyle.
206
- # SupportedStyles: require_parentheses, require_no_parentheses, require_no_parentheses_except_multiline
207
- Style/MethodDefParentheses:
208
- Exclude:
209
- - 'lib/split/configuration.rb'
210
-
211
- # Offense count: 9
212
- # Cop supports --auto-correct.
213
- # Configuration parameters: AllowMultipleReturnValues.
214
- Style/RedundantReturn:
215
- Exclude:
216
- - 'lib/split/alternative.rb'
217
- - 'lib/split/experiment.rb'
218
- - 'lib/split/helper.rb'
219
- - 'lib/split/zscore.rb'
220
-
221
- # Offense count: 258
222
- # Cop supports --auto-correct.
223
- # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
224
- # SupportedStyles: single_quotes, double_quotes
225
- Style/StringLiterals:
226
- Enabled: false
data/Appraisals DELETED
@@ -1,19 +0,0 @@
1
- appraise "4.2" do
2
- gem "rails", "~> 4.2"
3
- end
4
-
5
- appraise "5.0" do
6
- gem "rails", "~> 5.0"
7
- end
8
-
9
- appraise "5.1" do
10
- gem "rails", "~> 5.1"
11
- end
12
-
13
- appraise "5.2" do
14
- gem "rails", "~> 5.2"
15
- end
16
-
17
- appraise "6.0" do
18
- gem 'rails', '~> 6.0'
19
- end