split 4.0.3 → 4.0.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 746dd3b526b5464f12e01e2f00f8ff62b71ac6483527632f6f0bca7bc5242e8c
4
- data.tar.gz: bb40ca355a1aa9eec9cfb4067e6e2b3c381072830cffadffe414f8d7a4af043f
3
+ metadata.gz: c0c7476504dcc3b062af1a156fc7021b65e64bcc64a96d5faeabd9c4bd3fc987
4
+ data.tar.gz: c8cb8c4335be14da004d94da31a5cb21ee80a13f0b782f7e94c36f698f1765ef
5
5
  SHA512:
6
- metadata.gz: 70466ddfe57955a43dda0506c4a23806f6bdab154b344e495879027ae2baebec93d59f34018e78a3e83ef945c776c7a2ddcf2b40cd71998fb0bc9207ed60df61
7
- data.tar.gz: db1d46d7e7e1826aacf80ec1c8634f0502bd07d4b58d488e57f4917a8843954d568b4cd20c9e2db09ac2ff80811b14ec68a3158b870d091eeabf4e426af8172d
6
+ metadata.gz: 2bc0b3bbaeef30019bdcf913b8b20c3ac32efec3e025692eef5b3d552a0e7246b67a4dbcb73de7a01dd82d78d985587d21737f5f6cc77dcf4e1540eb067b9655
7
+ data.tar.gz: 87763ae8d35cf44780362e460c86ef7f818b32b5b7d5f4f1e4ec3c24cedf1b277bf162c2f34daba0cb1477f4acd44c8b4aa2d436be396ec51fbc19d8edcb72de
@@ -6,52 +6,40 @@ jobs:
6
6
  test:
7
7
  strategy:
8
8
  matrix:
9
- include:
10
- - gemfile: 5.2.gemfile
11
- ruby: 2.5
12
-
13
- - gemfile: 5.2.gemfile
14
- ruby: 2.6
15
-
16
- - gemfile: 5.2.gemfile
17
- ruby: 2.7
18
-
19
- - gemfile: 6.0.gemfile
20
- ruby: 2.5
21
-
22
- - gemfile: 6.0.gemfile
23
- ruby: 2.6
24
-
25
- - gemfile: 6.0.gemfile
26
- ruby: 2.7
27
-
28
- - gemfile: 6.0.gemfile
29
- ruby: '3.0'
30
-
31
- - gemfile: 6.1.gemfile
32
- ruby: '3.0'
33
-
34
- - gemfile: 7.0.gemfile
35
- ruby: '3.0'
36
-
37
- - gemfile: 7.0.gemfile
38
- ruby: '3.1'
39
-
40
- - gemfile: 7.0.gemfile
41
- ruby: '3.2'
42
-
9
+ ruby: ["3.5.0-preview1", "3.4", "3.3", "3.2", "3.1", "3.0", "2.7"]
10
+ rails: ["8.0", "7.2", "7.1", "6.1"]
11
+ exclude:
12
+ - rails: "6.1"
13
+ ruby: "3.4"
14
+
15
+ - rails: "6.1"
16
+ ruby: "3.5.0-preview1"
17
+
18
+ - rails: "7.2"
19
+ ruby: "2.7"
20
+ - rails: "7.2"
21
+ ruby: "3.0"
22
+
23
+ - rails: "8.0"
24
+ ruby: "2.7"
25
+ - rails: "8.0"
26
+ ruby: "3.0"
27
+ - rails: "8.0"
28
+ ruby: "3.1"
43
29
  runs-on: ubuntu-latest
44
30
 
45
31
  services:
46
32
  redis:
47
33
  image: redis
48
- ports: ['6379:6379']
34
+ ports: ["6379:6379"]
49
35
  options: >-
50
36
  --health-cmd "redis-cli ping"
51
37
  --health-interval 10s
52
38
  --health-timeout 5s
53
39
  --health-retries 5
54
40
 
41
+ env:
42
+ RAILS_VERSION: ${{ matrix.rails }}
55
43
  steps:
56
44
  - uses: actions/checkout@v4
57
45
 
@@ -61,7 +49,6 @@ jobs:
61
49
 
62
50
  - name: Install dependencies
63
51
  run: |
64
- bundle config set gemfile "${GITHUB_WORKSPACE}/gemfiles/${{ matrix.gemfile }}"
65
52
  bundle install --jobs 4 --retry 3
66
53
 
67
54
  - name: Display Ruby version
data/CHANGELOG.md CHANGED
@@ -1,4 +1,24 @@
1
- # 4.0.3 (November 15rd, 2023)
1
+ # 4.0.5 (Aug 3rd, 2025)
2
+
3
+ Bugfixes:
4
+ - Handle when Rails is partially loaded as a Gem. (@bjacobs09, #727)
5
+ - Fix Rack compatibility with versions > 3 (@andrehjr, #729)
6
+
7
+ Misc:
8
+ - Add funding_uri to gemspec (@andrew, #726)
9
+ - Drop Rails 5.x Support (@andrehjr, #728)
10
+ - Drop Rails 6.0 and Ruby < 2.6 (@andrehjr, #729)
11
+ - Add support for Ruby 3.5+ (@andrehjr, #737)
12
+
13
+ # 4.0.4 (March 3rd, 2024)
14
+
15
+ Bugfixes:
16
+ - Better integration for EncapsulatedHelper when needing params/request info (@henrique-ft, #721 and #723)
17
+
18
+ Misc:
19
+ - Make specs compatible with newer Rack versions (@andrehjr, #722)
20
+
21
+ # 4.0.3 (November 15th, 2023)
2
22
 
3
23
  Bugfixes:
4
24
  - Do not throw error if alternativas have data that can lead to negative numbers for probability calculation (@andrehjr, #703)
data/Gemfile CHANGED
@@ -6,3 +6,6 @@ gemspec
6
6
 
7
7
  gem "rubocop", require: false
8
8
  gem "codeclimate-test-reporter"
9
+ gem "concurrent-ruby", "< 1.3.5"
10
+
11
+ gem "rails", "~> #{ENV.fetch('RAILS_VERSION', '8.0')}"
@@ -29,7 +29,8 @@ module Split
29
29
  if Object.const_defined?("Rails") && Rails.respond_to?(:env)
30
30
  @current_env = Rails.env.titlecase
31
31
  else
32
- @current_env = "Rack: #{Rack.version}"
32
+ rack_version = Rack.respond_to?(:version) ? Rack.version : Rack.release
33
+ @current_env = "Rack: #{rack_version}"
33
34
  end
34
35
  erb :index
35
36
  end
@@ -23,6 +23,14 @@ module Split
23
23
  @context = context
24
24
  end
25
25
 
26
+ def params
27
+ request.params if request && request.respond_to?(:params)
28
+ end
29
+
30
+ def request
31
+ @context.request if @context.respond_to?(:request)
32
+ end
33
+
26
34
  def ab_user
27
35
  @ab_user ||= Split::User.new(@context)
28
36
  end
data/lib/split/helper.rb CHANGED
@@ -121,11 +121,11 @@ module Split
121
121
  end
122
122
 
123
123
  def override_alternative_by_params(experiment_name)
124
- defined?(params) && params[OVERRIDE_PARAM_NAME] && params[OVERRIDE_PARAM_NAME][experiment_name]
124
+ params_present? && params[OVERRIDE_PARAM_NAME] && params[OVERRIDE_PARAM_NAME][experiment_name]
125
125
  end
126
126
 
127
127
  def override_alternative_by_cookies(experiment_name)
128
- return unless defined?(request)
128
+ return unless request_present?
129
129
 
130
130
  if request.cookies && request.cookies.key?("split_override")
131
131
  experiments = JSON.parse(request.cookies["split_override"]) rescue {}
@@ -134,7 +134,7 @@ module Split
134
134
  end
135
135
 
136
136
  def split_generically_disabled?
137
- defined?(params) && params["SPLIT_DISABLE"]
137
+ params_present? && params["SPLIT_DISABLE"]
138
138
  end
139
139
 
140
140
  def ab_user
@@ -142,26 +142,34 @@ module Split
142
142
  end
143
143
 
144
144
  def exclude_visitor?
145
- defined?(request) && (instance_exec(request, &Split.configuration.ignore_filter) || is_ignored_ip_address? || is_robot? || is_preview?)
145
+ request_present? && (instance_exec(request, &Split.configuration.ignore_filter) || is_ignored_ip_address? || is_robot? || is_preview?)
146
146
  end
147
147
 
148
148
  def is_robot?
149
- defined?(request) && request.user_agent =~ Split.configuration.robot_regex
149
+ request_present? && request.user_agent =~ Split.configuration.robot_regex
150
150
  end
151
151
 
152
152
  def is_preview?
153
- defined?(request) && defined?(request.headers) && request.headers["x-purpose"] == "preview"
153
+ request_present? && defined?(request.headers) && request.headers["x-purpose"] == "preview"
154
154
  end
155
155
 
156
156
  def is_ignored_ip_address?
157
157
  return false if Split.configuration.ignore_ip_addresses.empty?
158
158
 
159
159
  Split.configuration.ignore_ip_addresses.each do |ip|
160
- return true if defined?(request) && (request.ip == ip || (ip.class == Regexp && request.ip =~ ip))
160
+ return true if request_present? && (request.ip == ip || (ip.class == Regexp && request.ip =~ ip))
161
161
  end
162
162
  false
163
163
  end
164
164
 
165
+ def params_present?
166
+ defined?(params) && params
167
+ end
168
+
169
+ def request_present?
170
+ defined?(request) && request
171
+ end
172
+
165
173
  def active_experiments
166
174
  ab_user.active_experiments
167
175
  end
@@ -47,8 +47,9 @@ module Split
47
47
  end
48
48
 
49
49
  def set_cookie_via_rack(key, value)
50
- delete_cookie_header!(@response.header, key, value)
51
- Rack::Utils.set_cookie_header!(@response.header, key, value)
50
+ headers = @response.respond_to?(:header) ? @response.header : @response.headers
51
+ delete_cookie_header!(headers, key, value)
52
+ Rack::Utils.set_cookie_header!(headers, key, value)
52
53
  end
53
54
 
54
55
  # Use Rack::Utils#make_delete_cookie_header after Rack 2.0.0
@@ -30,7 +30,7 @@ module Split
30
30
  attr_accessor :redis
31
31
 
32
32
  def redis_namespace_used?
33
- Redis.const_defined?("Namespace") && Split.redis.is_a?(Redis::Namespace)
33
+ defined?(Redis::Namespace) && Split.redis.is_a?(Redis::Namespace)
34
34
  end
35
35
  end
36
36
  end
data/lib/split/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Split
4
- VERSION = "4.0.3"
4
+ VERSION = "4.0.5"
5
5
  end
data/lib/split.rb CHANGED
@@ -24,7 +24,7 @@ require "split/trial"
24
24
  require "split/user"
25
25
  require "split/version"
26
26
  require "split/zscore"
27
- require "split/engine" if defined?(Rails)
27
+ require "split/engine" if defined?(::Rails::Engine)
28
28
 
29
29
  module Split
30
30
  extend self
@@ -74,7 +74,7 @@ module Split
74
74
  end
75
75
 
76
76
  # Check to see if being run in a Rails application. If so, wait until before_initialize to run configuration so Gems that create ENV variables have the chance to initialize first.
77
- if defined?(::Rails)
77
+ if defined?(::Rails::Railtie)
78
78
  class Split::Railtie < Rails::Railtie
79
79
  config.before_initialize { Split.configure { } }
80
80
  end
@@ -3,11 +3,7 @@
3
3
  require "spec_helper"
4
4
 
5
5
  describe Split::EncapsulatedHelper do
6
- include Split::EncapsulatedHelper
7
-
8
- def params
9
- raise NoMethodError, "This method is not really defined"
10
- end
6
+ let(:context_shim) { Split::EncapsulatedHelper::ContextShim.new(double(request: request)) }
11
7
 
12
8
  describe "ab_test" do
13
9
  before do
@@ -15,20 +11,15 @@ describe Split::EncapsulatedHelper do
15
11
  .and_return(mock_user)
16
12
  end
17
13
 
18
- it "should not raise an error when params raises an error" do
19
- expect { params }.to raise_error(NoMethodError)
20
- expect { ab_test("link_color", "blue", "red") }.not_to raise_error
21
- end
22
-
23
14
  it "calls the block with selected alternative" do
24
- expect { |block| ab_test("link_color", "red", "red", &block) }.to yield_with_args("red", {})
15
+ expect { |block| context_shim.ab_test("link_color", "red", "red", &block) }.to yield_with_args("red", {})
25
16
  end
26
17
 
27
18
  context "inside a view" do
28
19
  it "works inside ERB" do
29
20
  require "erb"
30
21
  template = ERB.new(<<-ERB.split(/\s+/s).map(&:strip).join(" "), nil, "%")
31
- foo <% ab_test(:foo, '1', '2') do |alt, meta| %>
22
+ foo <% context_shim.ab_test(:foo, '1', '2') do |alt, meta| %>
32
23
  static <%= alt %>
33
24
  <% end %>
34
25
  ERB
@@ -43,8 +34,43 @@ describe Split::EncapsulatedHelper do
43
34
  include Split::EncapsulatedHelper
44
35
  public :session
45
36
  }.new
37
+
46
38
  expect(ctx).to receive(:session) { {} }
47
39
  expect { ctx.ab_test("link_color", "blue", "red") }.not_to raise_error
48
40
  end
41
+
42
+ context "when request is defined in context of ContextShim" do
43
+ context "when overriding by params" do
44
+ it do
45
+ ctx = Class.new {
46
+ public :session
47
+ def request
48
+ build_request(params: {
49
+ "ab_test" => { "link_color" => "blue" }
50
+ })
51
+ end
52
+ }.new
53
+
54
+ context_shim = Split::EncapsulatedHelper::ContextShim.new(ctx)
55
+ expect(context_shim.ab_test("link_color", "blue", "red")).to be("blue")
56
+ end
57
+ end
58
+
59
+ context "when overriding by cookies" do
60
+ it do
61
+ ctx = Class.new {
62
+ public :session
63
+ def request
64
+ build_request(cookies: {
65
+ "split_override" => '{ "link_color": "red" }'
66
+ })
67
+ end
68
+ }.new
69
+
70
+ context_shim = Split::EncapsulatedHelper::ContextShim.new(ctx)
71
+ expect(context_shim.ab_test("link_color", "blue", "red")).to be("red")
72
+ end
73
+ end
74
+ end
49
75
  end
50
76
  end
data/spec/helper_spec.rb CHANGED
@@ -670,7 +670,7 @@ describe Split::Helper do
670
670
 
671
671
  describe "when user is a robot" do
672
672
  before(:each) do
673
- @request = OpenStruct.new(user_agent: "Googlebot/2.1 (+http://www.google.com/bot.html)")
673
+ @request = build_request(user_agent: "Googlebot/2.1 (+http://www.google.com/bot.html)")
674
674
  end
675
675
 
676
676
  describe "ab_test" do
@@ -768,7 +768,7 @@ describe Split::Helper do
768
768
  describe "when ip address is ignored" do
769
769
  context "individually" do
770
770
  before(:each) do
771
- @request = OpenStruct.new(ip: "81.19.48.130")
771
+ @request = build_request(ip: "81.19.48.130")
772
772
  Split.configure do |c|
773
773
  c.ignore_ip_addresses << "81.19.48.130"
774
774
  end
@@ -779,7 +779,7 @@ describe Split::Helper do
779
779
 
780
780
  context "for a range" do
781
781
  before(:each) do
782
- @request = OpenStruct.new(ip: "81.19.48.129")
782
+ @request = build_request(ip: "81.19.48.129")
783
783
  Split.configure do |c|
784
784
  c.ignore_ip_addresses << /81\.19\.48\.[0-9]+/
785
785
  end
@@ -790,7 +790,7 @@ describe Split::Helper do
790
790
 
791
791
  context "using both a range and a specific value" do
792
792
  before(:each) do
793
- @request = OpenStruct.new(ip: "81.19.48.128")
793
+ @request = build_request(ip: "81.19.48.128")
794
794
  Split.configure do |c|
795
795
  c.ignore_ip_addresses << "81.19.48.130"
796
796
  c.ignore_ip_addresses << /81\.19\.48\.[0-9]+/
@@ -802,7 +802,7 @@ describe Split::Helper do
802
802
 
803
803
  context "when ignored other address" do
804
804
  before do
805
- @request = OpenStruct.new(ip: "1.1.1.1")
805
+ @request = build_request(ip: "1.1.1.1")
806
806
  Split.configure do |c|
807
807
  c.ignore_ip_addresses << "81.19.48.130"
808
808
  end
@@ -819,7 +819,7 @@ describe Split::Helper do
819
819
 
820
820
  describe "when user is previewing" do
821
821
  before(:each) do
822
- @request = OpenStruct.new(headers: { "x-purpose" => "preview" })
822
+ @request = build_request(headers: { "x-purpose" => "preview" })
823
823
  end
824
824
 
825
825
  it_behaves_like "a disabled test"
@@ -67,14 +67,14 @@ describe Split::Persistence::CookieAdapter do
67
67
  it "puts multiple experiments in a single cookie" do
68
68
  subject["foo"] = "FOO"
69
69
  subject["bar"] = "BAR"
70
- expect(context.response.headers["Set-Cookie"]).to match(/\Asplit=%7B%22foo%22%3A%22FOO%22%2C%22bar%22%3A%22BAR%22%7D; path=\/; expires=[a-zA-Z]{3}, \d{2} [a-zA-Z]{3} \d{4} \d{2}:\d{2}:\d{2} [A-Z]{3}\Z/)
70
+ expect(Array(context.response.headers["Set-Cookie"])).to include(/\Asplit=%7B%22foo%22%3A%22FOO%22%2C%22bar%22%3A%22BAR%22%7D; path=\/; expires=[a-zA-Z]{3}, \d{2} [a-zA-Z]{3} \d{4} \d{2}:\d{2}:\d{2} [A-Z]{3}\Z/)
71
71
  end
72
72
 
73
73
  it "ensure other added cookies are not overriden" do
74
74
  context.response.set_cookie "dummy", "wow"
75
75
  subject["foo"] = "FOO"
76
- expect(context.response.headers["Set-Cookie"]).to include("dummy=wow")
77
- expect(context.response.headers["Set-Cookie"]).to include("split=")
76
+ expect(Array(context.response.headers["Set-Cookie"])).to include(/dummy=wow/)
77
+ expect(Array(context.response.headers["Set-Cookie"])).to include(/split=/)
78
78
  end
79
79
  end
80
80
 
data/spec/spec_helper.rb CHANGED
@@ -9,7 +9,6 @@ require "simplecov"
9
9
  SimpleCov.start
10
10
 
11
11
  require "split"
12
- require "ostruct"
13
12
  require "yaml"
14
13
  require "pry"
15
14
 
@@ -44,11 +43,24 @@ def params
44
43
  @params ||= {}
45
44
  end
46
45
 
47
- def request(ua = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; de-de) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27")
48
- @request ||= begin
49
- r = OpenStruct.new
50
- r.user_agent = ua
51
- r.ip = "192.168.1.1"
52
- r
53
- end
46
+ def request
47
+ @request ||= build_request
48
+ end
49
+
50
+ DummyRequest = Struct.new(:user_agent, :ip, :params, :cookies, :headers)
51
+
52
+ def build_request(
53
+ user_agent: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; de-de) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27",
54
+ ip: "192.168.1.1",
55
+ params: {},
56
+ cookies: {},
57
+ headers: {}
58
+ )
59
+ r = DummyRequest.new
60
+ r.user_agent = user_agent
61
+ r.ip = ip
62
+ r.params = params
63
+ r.cookies = cookies
64
+ r.headers = headers
65
+ r
54
66
  end
data/split.gemspec CHANGED
@@ -20,10 +20,11 @@ Gem::Specification.new do |s|
20
20
  "source_code_uri" => "https://github.com/splitrb/split",
21
21
  "bug_tracker_uri" => "https://github.com/splitrb/split/issues",
22
22
  "wiki_uri" => "https://github.com/splitrb/split/wiki",
23
- "mailing_list_uri" => "https://groups.google.com/d/forum/split-ruby"
23
+ "mailing_list_uri" => "https://groups.google.com/d/forum/split-ruby",
24
+ "funding_uri" => "https://opencollective.com/split"
24
25
  }
25
26
 
26
- s.required_ruby_version = ">= 2.5.0"
27
+ s.required_ruby_version = ">= 2.7.0"
27
28
  s.required_rubygems_version = ">= 2.0.0"
28
29
 
29
30
  s.files = `git ls-files`.split("\n")
@@ -34,6 +35,8 @@ Gem::Specification.new do |s|
34
35
  s.add_dependency "sinatra", ">= 1.2.6"
35
36
  s.add_dependency "rubystats", ">= 0.3.0"
36
37
  s.add_dependency "matrix"
38
+ s.add_dependency "bigdecimal"
39
+ s.add_dependency "cgi"
37
40
 
38
41
  s.add_development_dependency "bundler", ">= 1.17"
39
42
  s.add_development_dependency "simplecov", "~> 0.15"
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: split
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.3
4
+ version: 4.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-11-15 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: redis
@@ -66,6 +65,34 @@ dependencies:
66
65
  - - ">="
67
66
  - !ruby/object:Gem::Version
68
67
  version: '0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: bigdecimal
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: cgi
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
69
96
  - !ruby/object:Gem::Dependency
70
97
  name: bundler
71
98
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +191,6 @@ dependencies:
164
191
  - - ">="
165
192
  - !ruby/object:Gem::Version
166
193
  version: '5.0'
167
- description:
168
194
  email:
169
195
  - andrewnez@gmail.com
170
196
  executables: []
@@ -189,10 +215,6 @@ files:
189
215
  - LICENSE
190
216
  - README.md
191
217
  - Rakefile
192
- - gemfiles/5.2.gemfile
193
- - gemfiles/6.0.gemfile
194
- - gemfiles/6.1.gemfile
195
- - gemfiles/7.0.gemfile
196
218
  - lib/split.rb
197
219
  - lib/split/algorithms.rb
198
220
  - lib/split/algorithms/block_randomization.rb
@@ -274,7 +296,7 @@ metadata:
274
296
  bug_tracker_uri: https://github.com/splitrb/split/issues
275
297
  wiki_uri: https://github.com/splitrb/split/wiki
276
298
  mailing_list_uri: https://groups.google.com/d/forum/split-ruby
277
- post_install_message:
299
+ funding_uri: https://opencollective.com/split
278
300
  rdoc_options: []
279
301
  require_paths:
280
302
  - lib
@@ -282,15 +304,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
282
304
  requirements:
283
305
  - - ">="
284
306
  - !ruby/object:Gem::Version
285
- version: 2.5.0
307
+ version: 2.7.0
286
308
  required_rubygems_version: !ruby/object:Gem::Requirement
287
309
  requirements:
288
310
  - - ">="
289
311
  - !ruby/object:Gem::Version
290
312
  version: 2.0.0
291
313
  requirements: []
292
- rubygems_version: 3.1.6
293
- signing_key:
314
+ rubygems_version: 3.7.0.dev
294
315
  specification_version: 4
295
316
  summary: Rack based split testing framework
296
317
  test_files:
data/gemfiles/5.2.gemfile DELETED
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "rubocop", require: false
4
- gem "codeclimate-test-reporter"
5
- gem "rails", "~> 5.2"
6
-
7
- gemspec path: "../"
data/gemfiles/6.0.gemfile DELETED
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "rubocop", require: false
4
- gem "codeclimate-test-reporter"
5
- gem "rails", "~> 6.0"
6
-
7
- gemspec path: "../"
data/gemfiles/6.1.gemfile DELETED
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "rubocop", require: false
4
- gem "codeclimate-test-reporter"
5
- gem "rails", "~> 6.1"
6
-
7
- gemspec path: "../"
data/gemfiles/7.0.gemfile DELETED
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "rubocop", require: false
4
- gem "codeclimate-test-reporter"
5
- gem "rails", "~> 7.0"
6
-
7
- gemspec path: "../"