WEBrick errors on ruby 1.8, works fine on ruby 1.9
我有以下脚本运行Web服务器并在收到请求时执行命令。
1 2 3 4 5 6 7 8 9 10 11 | #!/usr/bin/env ruby require 'webrick' server = WEBrick::HTTPServer.new(port: ARGV.first) server.mount_proc '/' do |req, res| r10kstatus = system("sudo r10k deploy environment -pv warn" ) puts r10kstatus end trap 'INT' do server.shutdown end server.start |
不幸的是,我需要将其移植到ruby 1.8上(因为脚本rvm在分布式系统上工作很痛苦)。
当我尝试在ruby 1.8上运行脚本时,出现以下错误:
server = WEBrick::HTTPServer.new(Port: ARGV.first)
^
/usr/lib/ruby/gems/1.8/gems/r10k_gitlab_webhook-0.1.0/bin/r10k_gitlab_webhook:4: syntax error, unexpected ')', expecting $end
from /usr/bin/r10k_gitlab_webhook:19
如何修改此脚本以使用ruby 1.8?
更新
我已经将'Port'改为'port'
UPDATE2
比较webrick的ruby 1.8和ruby 1.9文档,表明1.8中的新方法没有端口参数
http://www.ruby-doc.org/stdlib-1.8.7/libdoc/webrick/rdoc/WEBrick/HTTPServer.html#method-c-new
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/webrick/rdoc/WEBrick/HTTPServer.html#method-c-new
我尝试将
^
r10k_gitlab_webhook_old.rb:4: syntax error, unexpected ')', expecting $end
在Ruby 1.9中引入了散列的
1 | server = WEBrick::HTTPServer.new(:Port => ARGV.first) |
(我认为它是