Ruby 3.0.0からwebrickが標準ライブラリから外れた。
そのためSinatraを使うときは、別途Rack handlerのインストールが必要になったお話。
2.7系以下なら標準のWebrickで動きます。
www.ruby-lang.org
こんな感じでエラーになる。
メッセージの通り(thin,puma,reel,HTTP,webrick)が見つからない!となるので、別途Gemをインストールする。
% bundle exec ruby app.rb
/Users/user/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1755:in `detect_rack_handler': Server handler (thin,puma,reel,HTTP,webrick) not found. (RuntimeError)
from /Users/user/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1493:in `run!'
from /Users/user/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/sinatra-2.1.0/lib/sinatra/main.rb:45:in `block in <module:Sinatra>'
gem install
でpumaなりWebrickなりをインストールすると良い。
% gem install puma
bundlerを使う場合のGemfileはこんな感じに書いて、bundle installしてやる。
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "sinatra"
gem "puma"