speg03の雑記帳

主に未来の自分のために試したことなどを記録しています

Sinatraはじめました

簡潔に書けるWebサーバってことでSinatraを試してみたよ!

ソースコード

app.rb
#!/usr/bin/env ruby

require 'rubygems'
require 'sinatra'

set :port, 10080

get '/' do
  "Hello, world\n"
end

get '/test' do
  "this is a test action.\n"
end
test
this is a test file.

ディレクトリ構成

$ ls -FR
.:
app.rb  public/

./public:
test

実行

rubyでそのまま実行してもよいのだけど、スクリプトファイルを編集したときにいちいちサーバを再起動させるのは面倒。そういうときにshotgunが使える。gemでinstallできる。

$ sudo gem install shotgun

デフォルトだとポート9393を使う。Sinatraの側でポート指定していても変えられてしまうようなので、変更するときはshotgunのオプションで指定する。

$ shotgun -p 10080 app.rb
[2009-10-03 17:43:18] INFO  WEBrick 1.3.1
[2009-10-03 17:43:18] INFO  ruby 1.8.5 (2006-08-25) [i386-linux]
== Shotgun starting Rack::Handler::WEBrick on localhost:10080
[2009-10-03 17:43:18] INFO  WEBrick::HTTPServer#start: pid=5153 port=10080

あとはブラウザなりなんなりで結果をチェック。

$ curl http://localhost:10080/
Hello, world
$ curl http://localhost:10080/test
this is a test file.

Sinatraではまずpublic以下のファイルがないか調べてからコードのほうにマッチするか調べるらしい。