Skip to content

Commit d6602f1

Browse files
authored
fix: Use Rackup::Server when rack version is >= 3.0 (#604)
1 parent a14367e commit d6602f1

File tree

4 files changed

+16
-4
lines changed

4 files changed

+16
-4
lines changed

lib/teaspoon/rackup_server_shim.rb

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
require 'rack'
2+
require 'rackup'
3+
4+
module Teaspoon
5+
if Gem::Version.new(Rack.release) > '3.0'
6+
RackupServerShim = ::Rackup::Server
7+
else
8+
RackupServerShim = ::Rack::Server
9+
end
10+
end

lib/teaspoon/server.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
require "socket"
22
require "timeout"
33
require "webrick"
4+
require_relative "rackup_server_shim"
45

56
module Teaspoon
67
class Server
@@ -16,7 +17,7 @@ def start
1617

1718
thread = Thread.new do
1819
disable_logging
19-
server = Rack::Server.new(rack_options)
20+
server = RackupServerShim.new(rack_options)
2021
server.start
2122
end
2223
wait_until_started(thread)

spec/teaspoon/server_spec.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
end
2121

2222
it "starts a rack server" do
23-
expect(Rack::Server).to receive(:new).and_return(server)
23+
expect(Teaspoon::RackupServerShim).to receive(:new).and_return(server)
2424
expect(server).to receive(:start)
2525

2626
subject.start
@@ -41,7 +41,7 @@
4141
)
4242
end
4343

44-
it "creates a Rack::Server with the correct setting" do
44+
it "creates a Teaspoon::RackupServerShim with the correct setting" do
4545
expected_opts = {
4646
app: Rails.application,
4747
Host: subject.host,
@@ -52,7 +52,7 @@
5252
server: Teaspoon.configuration.server,
5353
Silent: true,
5454
}
55-
expect(Rack::Server).to receive(:new).with(expected_opts).and_return(server)
55+
expect(Teaspoon::RackupServerShim).to receive(:new).with(expected_opts).and_return(server)
5656

5757
subject.start
5858
@block.call

teaspoon.gemspec

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
2020

2121
s.required_ruby_version = ">= 2.7"
2222
s.add_runtime_dependency "railties", ">= 5.0"
23+
s.add_runtime_dependency "rackup", ">= 2.1"
2324
s.add_development_dependency "simplecov", "< 0.18"
2425
if RUBY_VERSION > "3"
2526
s.add_development_dependency "webrick"

0 commit comments

Comments
 (0)