インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Sinatraで遊ぼう!便利機能編

リクエストの追加

いい感じにHello Worldが表示されましたか?

前の記事でも書きましたが、Sinatra の基本は何々がリクエストされたら何々を表示する、というものになっています。

これをたくさん書いていけば OK なので、hello_sinatra.rbに下記を加えると

get '/about' do 
  "about this site page" 
end

ブラウザから「/about」で読み込むと「about this site」が表示されます。

早速hello_sinatra.rbを下記の様に編集して、ブラウザを叩いてみましょう。

$ cat hello_sinatra.rb
require 'sinatra'

get '/' do 
  "Hello World"
end

get '/about' do
    "about this site"
end

ブラウザを叩くとこのように何かエラーっぽいのが出てしまいます。

Sinatra ではファイルを更新したら Web サーバーを再起動しないといけません

なので、再起動するためににWebサーバー 1 回停止しなくてはいけないので、(ターミナルで)Ctrl+C を叩いてください。

そうすると終了するので、もう一度立ち上げるとこのファイルの変更が反映されます。

ここの時点でブラウザからhttp://localhost:4567/aboutを叩くとちゃんと表示されます。

ファイルを更新する度にWeb サーバーを再起動するのは超面倒ですよね。

それを回避する方法があります。

Sinatraをインストールする時に sinatra-contrib というgemをインストールしましたが、
その中に入っている sinatra/reloader というのを読み込んでおきましょう。

$ cat hello_sntr.rb
require 'sinatra'
require 'sinatra/reloader'

get "/" do
  "Hello Sinatra"
end

get "/about" do
  "about this page"
end

sinatra/reloader を読み込んでおくと、変更がそのまま Web サーバーの再起動なしに反映できるのでとても便利です。

  • B!