Sinatraの使い方
下記のページを参考にSinatraの使い方を勉強する。
Sinatra: README (Japanese)
SinatraはRubyで最小労力で手早くウェブアプリケーションを作成するためのDSL。
ルート
Sinatraでは、ルートはHTTPメソッドとURLマッチングパターンがペアになっている。
HTTPメソッドとはgetやpostで、URLマッチングパターンとは'/'などで、'/'はトップページを表す。
get '/' do .. 何か見せる .. end post '/' do .. 何か生成する .. end put '/' do .. 何か更新する .. end delete '/' do .. 何か削除する .. end
ルートは定義された順番にマッチする。リクエストに最初にマッチしたルートが呼び出される。
ルートのパターンは名前付きパラメータ(:name)を含むことができ、paramsハッシュで取得できる。
require 'sinatra' get '/hello/:name' do "Hello #{params[:name]}!" end
'/hello/:name'は「トップページ/hello/任意の文字列」のページを表し、実行例ではアドレスに「トップページ/heloo/ayaketan」と入力したので、ページには「Hello ayaketan!」が表示されたが、アドレスに「トップページ/heloo/foo」と入力すると、「Hello foo!」と表示される。
また、ブロックパラメータで名前付きパラメータにアクセスすることもできる。
require 'sinatra' get '/hello/:name' do |n| "Hello #{n}!" end
ルートパターンはsplat(またはワイルドカード)を含むこともでき、params[:splat]で取得できる。
require 'sinatra' get '/say/*/to/*' do params[:splat] end get '/download/*.*' do params[:splat] end
これもブロックパラメータを使用することができる。
require 'sinatra' get '/download/*.*' do |path, ext| params[:splat] end
Erbテンプレート
テンプレートは./viewsディレクトリ下に配置されている。
require 'sinatra' require 'erb' get '/' do erb :index end