Skip to content

Commit f332e16

Browse files
authored
Merge pull request #737 from splitrb/recent-rubies-support
Add support for recent Ruby
2 parents 172220c + fab1825 commit f332e16

File tree

5 files changed

+20
-13
lines changed

5 files changed

+20
-13
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ jobs:
66
test:
77
strategy:
88
matrix:
9-
ruby: ["3.4", "3.3", "3.2", "3.1", "3.0", "2.7"]
9+
ruby: ["3.5.0-preview1", "3.4", "3.3", "3.2", "3.1", "3.0", "2.7"]
1010
rails: ["8.0", "7.2", "7.1", "6.1"]
1111
exclude:
1212
- rails: "6.1"
1313
ruby: "3.4"
1414

15+
- rails: "6.1"
16+
ruby: "3.5.0-preview1"
17+
1518
- rails: "7.2"
1619
ruby: "2.7"
1720
- rails: "7.2"

lib/split/redis_interface.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def add_to_set(set_name, value)
3030
attr_accessor :redis
3131

3232
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)
3434
end
3535
end
3636
end

spec/helper_spec.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,7 @@ def should_finish_experiment(experiment_name, should_finish = true)
670670

671671
describe "when user is a robot" do
672672
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)")
674674
end
675675

676676
describe "ab_test" do
@@ -768,7 +768,7 @@ def should_finish_experiment(experiment_name, should_finish = true)
768768
describe "when ip address is ignored" do
769769
context "individually" do
770770
before(:each) do
771-
@request = OpenStruct.new(ip: "81.19.48.130")
771+
@request = build_request(ip: "81.19.48.130")
772772
Split.configure do |c|
773773
c.ignore_ip_addresses << "81.19.48.130"
774774
end
@@ -779,7 +779,7 @@ def should_finish_experiment(experiment_name, should_finish = true)
779779

780780
context "for a range" do
781781
before(:each) do
782-
@request = OpenStruct.new(ip: "81.19.48.129")
782+
@request = build_request(ip: "81.19.48.129")
783783
Split.configure do |c|
784784
c.ignore_ip_addresses << /81\.19\.48\.[0-9]+/
785785
end
@@ -790,7 +790,7 @@ def should_finish_experiment(experiment_name, should_finish = true)
790790

791791
context "using both a range and a specific value" do
792792
before(:each) do
793-
@request = OpenStruct.new(ip: "81.19.48.128")
793+
@request = build_request(ip: "81.19.48.128")
794794
Split.configure do |c|
795795
c.ignore_ip_addresses << "81.19.48.130"
796796
c.ignore_ip_addresses << /81\.19\.48\.[0-9]+/
@@ -802,7 +802,7 @@ def should_finish_experiment(experiment_name, should_finish = true)
802802

803803
context "when ignored other address" do
804804
before do
805-
@request = OpenStruct.new(ip: "1.1.1.1")
805+
@request = build_request(ip: "1.1.1.1")
806806
Split.configure do |c|
807807
c.ignore_ip_addresses << "81.19.48.130"
808808
end
@@ -819,7 +819,7 @@ def should_finish_experiment(experiment_name, should_finish = true)
819819

820820
describe "when user is previewing" do
821821
before(:each) do
822-
@request = OpenStruct.new(headers: { "x-purpose" => "preview" })
822+
@request = build_request(headers: { "x-purpose" => "preview" })
823823
end
824824

825825
it_behaves_like "a disabled test"

spec/spec_helper.rb

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
SimpleCov.start
1010

1111
require "split"
12-
require "ostruct"
1312
require "yaml"
1413
require "pry"
1514

@@ -48,16 +47,20 @@ def request
4847
@request ||= build_request
4948
end
5049

50+
DummyRequest = Struct.new(:user_agent, :ip, :params, :cookies, :headers)
51+
5152
def build_request(
52-
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",
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",
5354
ip: "192.168.1.1",
5455
params: {},
55-
cookies: {}
56+
cookies: {},
57+
headers: {}
5658
)
57-
r = OpenStruct.new
58-
r.user_agent = ua
59+
r = DummyRequest.new
60+
r.user_agent = user_agent
5961
r.ip = ip
6062
r.params = params
6163
r.cookies = cookies
64+
r.headers = headers
6265
r
6366
end

split.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
3636
s.add_dependency "rubystats", ">= 0.3.0"
3737
s.add_dependency "matrix"
3838
s.add_dependency "bigdecimal"
39+
s.add_dependency "cgi"
3940

4041
s.add_development_dependency "bundler", ">= 1.17"
4142
s.add_development_dependency "simplecov", "~> 0.15"

0 commit comments

Comments
 (0)