2013-11-04 2 views
4

아래의 코드에서이 구문 오류가 발생하며 루비가 그것에 대해 불평하는 이유를 알 수 없습니다.구문 오류, 예기치 못한 ':', 예상 ')'

내가 아는 바로는
# bundle exec bin/userscan 
bin/userscan:3:in `require': /usr/src/userscan/lib/userscan.rb:131: syntax error, unexpected ':', expecting ')' (SyntaxError) 
    host: "localhost", 
    ^
/usr/src/userscan/lib/userscan.rb:131: syntax error, unexpected ',', expecting kEND 
/usr/src/userscan/lib/userscan.rb:133: syntax error, unexpected ')', expecting kEND 
    from bin/userscan:3 

, 그것은 -should-에 대해 불평 부분 괜찮을 다음과 같이

def user_list 
    server = Lumberg::Whm::Server.new(
    host: "localhost", 
    hash: IO.read("/root/.accesshash") 
) 

results = server.account.list 
accounts = result[:params][:acct].map {|a| a["user"] } 

end 
end 

구문 오류입니다. 분명히 세미콜론은 실제로 거기에 있어야하고 괄호는 두 줄 전체를 포함해야합니다. 나는 그것으로 조금 놀았지만, 나는 더 나은 것보다 더 나빠질 뿐이다.

내가 여기까지 망쳐 놓은 것에 대한 도움을 주시면 감사하겠습니다.

답변

5

구문 host: ".."은 루비 1.9에 새로 추가되었습니다. 루비 1.8을 사용하는 경우 이전 구문을 사용해야합니다.

server = Lumberg::Whm::Server.new(
    :host => "localhost", 
    :hash => IO.read("/root/.accesshash")) 
+0

그게 전부입니다. 나는 루비 1.8 서버를 사용하고 있으며, 1.8에서 1.9 사이의 차이점을 인식하지 못했습니다. 도움을 주셔서 감사합니다. – Striketh

+0

'ruby --version'에 따라 1.9.3을 실행하고 있지만 여전히 동일한 구문 오류가 표시되며 이전 구문을 사용하여 해결해야합니다. 그 이유가 있을까요? –

관련 문제