話題のSinatraを使ってみた。

SinatraRuby製の軽量フレームワーク

Sinatra
http://www.sinatrarb.com/

インストールはgemコマンドを使う。

$ sudo gem install sinatra

インストール完了後、こんな内容のファイルをhello.rbと名前をつけて、適当なディレクトリに保存する。

require 'rubygems'
require 'sinatra'
get '/hi' do
  "Hello World!"
end

Sinatraの起動はrubyコマンドを使う。

$ ruby hello.rb
== Sinatra/0.9.4 has taken the stage on 4567 for development with backup from Mongrel

ブラウザを起動し、http://localhost:4567/hi のURLにアクセス。

Hello World

ブラウザにこのように表示されれば起動確認は完了。
ちなみに、存在しないURLにアクセスした場合、ステージにマイクがポツンと置かれた画像とともにオシャレなエラー画面が表示される。

パラメータ受け取りの一例はこんな感じ。

get '/hi/:name' do
  "Hello #{params[:name]}!"
end

内容を更新した場合、起動中のSinatraを再起動しないと反映されない。
再起動後、http://localhost:4567/hi/yuupon のURLにアクセスすると、

Hello yuupon!

と表示される。

すごくシンプル。これまで自分が使ってきたPHPMapleZend Frameworkなどのフレームワークとは毛色が異なりすぎて、なんだか「え、こんなんでいいの?」と戸惑ってしまう。

しかし、Rubyの関数を組み込んだり、表示するコンテンツを外部テンプレートファイルに切り分けたり、外部ライブラリをrequireしてデータベースにも接続できる。
セッションなど足りない機能は自分自身で実装するのでなくRackミドルウェアの機能を利用したりもできるらしい。
なんだかコバンザメっぽい感じ。

単にシンプルな構文が特徴的、とまとめるにはちょいと奥が深すぎるフレームワークなのかもと思った。