ルビーとシナトラを初めて掘り下げて、アラン・ハリスとコンスタチン・ハーゼの「シナトラ・アップ・アンド・ランニング」を駆け抜けます。Ruby のバージョンを (RVM を使用して) 整理した後、拡張機能を作成するときに第 3 章まで問題は発生しませんでした。コードは次のとおりです (post_get.rb):
require 'sinatra/base'
module Sinatra
module PostGet
def post_get (route, &block)
get (route, &block)
post (route, &block)
end
end
register PostGet
end
(post_get_test.rb) で使用:
require 'sinatra'
require './post_get'
post_get '/' do
"Hello #{params[:names]}"
end
しかし、「ruby post_get_test.rb」を実行するたびに、すぐに次のランタイム エラーが発生します。
user@UbuntuOne:~/sinatra$ ruby post_get_test.rb
/home/user/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': /home/user/sinatra/post_get.rb:6: syntax error, unexpected ',', expecting ')' (SyntaxError)
get (route, &block)
^
/home/user/sinatra/post_get.rb:7: syntax error, unexpected ',', expecting ')'
post (route, &block)
^
/home/user/sinatra/post_get.rb:13: syntax error, unexpected $end, expecting keyword_end
from /home/user/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from post_get_test.rb:2:in `<main>'
これを整理するためにどこから始めればよいかさえよくわかりません。これを解決するために誰かが私を正しい方向に向けることができますか?
ありがとう。