split 4.0.0.pre2 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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