話題のSinatraを使ってみた。
インストールはgemコマンドを使う。
$ sudo gem install sinatra
インストール完了後、こんな内容のファイルをhello.rbと名前をつけて、適当なディレクトリに保存する。
require 'rubygems' require 'sinatra' get '/hi' do "Hello World!" end
$ ruby hello.rb == Sinatra/0.9.4 has taken the stage on 4567 for development with backup from Mongrel
ブラウザを起動し、http://localhost:4567/hi のURLにアクセス。
ブラウザにこのように表示されれば起動確認は完了。
ちなみに、存在しないURLにアクセスした場合、ステージにマイクがポツンと置かれた画像とともにオシャレなエラー画面が表示される。
パラメータ受け取りの一例はこんな感じ。
get '/hi/:name' do "Hello #{params[:name]}!" end
内容を更新した場合、起動中のSinatraを再起動しないと反映されない。
再起動後、http://localhost:4567/hi/yuupon のURLにアクセスすると、
Hello yuupon!
と表示される。
すごくシンプル。これまで自分が使ってきたPHPのMapleやZend Frameworkなどのフレームワークとは毛色が異なりすぎて、なんだか「え、こんなんでいいの?」と戸惑ってしまう。
しかし、Rubyの関数を組み込んだり、表示するコンテンツを外部テンプレートファイルに切り分けたり、外部ライブラリをrequireしてデータベースにも接続できる。
セッションなど足りない機能は自分自身で実装するのでなくRackミドルウェアの機能を利用したりもできるらしい。
なんだかコバンザメっぽい感じ。
単にシンプルな構文が特徴的、とまとめるにはちょいと奥が深すぎるフレームワークなのかもと思った。