我正在运行Ruby脚本,但收到以下错误消息。
root@li140-48:~/rbircd-master# ruby ircd.rb
ircd.rb:38:in `load': ircclient.rb:145: syntax error, unexpected tSTRING_BEG, expecting ':' (SyntaxError)
(value == true) ? key.upcase"#{key.upcase}=#{value}"
^
from ircd.rb:38:in `reload!'
from ircd.rb:41:in `<main>'
root@li140-48:~/rbircd-master#
以下是ircclient.rb:145
周围的代码块:
def send_version(detailed=false)
if detailed
send_numeric 351, 'RubyIRCd0.1.0.', @server.name, 'FhiXeOoZE [Linux box 2.6.18-128.1.1.el5.028stab062.3 #1 SMP Sun May 10 18:54:51 MSD 2009 i686=2309]'
send @server.name, :notice, @nick, 'OpenSSL 0.9.8k 25 Mar 2009'
send @server.name, :notice, @nick, 'zlib 1.2.3'
send @server.name, :notice, @nick, 'libcurl/7.19.4 GnuTLS/2.6.6 zlib/1.2.3 c-ares/1.6.0 libssh2/0.18'
end
features = ServerConfig.features.clone
features.each_slice(13) do |slice|
slice.map! do |(key, value)|
(value == true) ? key.upcase"#{key.upcase}=#{value}"
end
slice << 'are supported by this server'
send_numeric '005', *slice
end
end
有人可以帮助我吗?
答案 0 :(得分:1)
如果您错过了else条款,那么您正在做三元组。
更改
(value == true) ? key.upcase"#{key.upcase}=#{value}"
到
value ? key.upcase : "#{key.upcase}=#{value}"