猎枪不';更新到Ruby 3.0.1后,不能启动

猎枪不';更新到Ruby 3.0.1后,不能启动,ruby,server,sinatra,upgrade,shotgun,Ruby,Server,Sinatra,Upgrade,Shotgun,在升级到Ruby 3.0.1之后,我正在尝试为Sinatra应用程序启动Shotgun,并获得以下结果: $ shotgun == Shotgun/Thin on http://127.0.0.1:9393/ /Users/me/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/handler/thin.rb:11:in `run': wrong number of arguments (given 2, e

在升级到Ruby 3.0.1之后,我正在尝试为Sinatra应用程序启动Shotgun,并获得以下结果:

 $ shotgun 
== Shotgun/Thin on http://127.0.0.1:9393/
/Users/me/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/handler/thin.rb:11:in `run': wrong number of arguments (given 2, expected 1) (ArgumentError)
    from /Users/me/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/shotgun-0.9.2/bin/shotgun:156:in `<top (required)>'
    from /Users/me/.rbenv/versions/3.0.1/bin/shotgun:23:in `load'
    from /Users/me/.rbenv/versions/3.0.1/bin/shotgun:23:in `<main>'
$shotgun
==猎枪/薄开http://127.0.0.1:9393/
/Users/me/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rack-2.2.3/lib/rack/handler/thin.rb:11:在'run'中:参数数量错误(给定2个,预期1个)(ArgumentError)
from/Users/me/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/shotgun-0.9.2/bin/shotgun:156:in`'
from/Users/me/.rbenv/versions/3.0.1/bin/shotgun:23:在“加载”中
from/Users/me/.rbenv/versions/3.0.1/bin/shotgun:23:in`'
运行
gem list
,我得到:

猎枪(0.9.2)


发生什么事了?谢谢

Ruby v3.0引入了一个突破性的变化,与关键字与位置参数相关

shotgun
gem已经很久没有更新了;最新版本(0.9.2)于2016年9月发布

看看github中的gem,我发现您提出的这个问题有一个明确的答案,而且已经有人提出了,这是很有帮助的

除非原始作者合并此修复并发布gem的新版本,否则您将需要使用上述分叉版本。例如,将您的
Gemfile
更新为:

gem 'shotgun', git: 'https://github.com/delonnewman/shotgun.git'
然后运行
捆绑安装

也有完全相同的修复,所以你可以同样使用叉子代替



。。。或者,现在继续使用ruby
2.7

非常感谢Tom,我应该检查一下GitHub的问题。使用分叉版本并不能解决任何问题,所以我想我现在还是坚持使用Ruby 2.7.1。