# Rubyの軽量Webフレームワーク「Sinatra」がステキ _published: 2009/04/22_ ![alt](http://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/shunsuk/20090422/1240401592) フルスタックがウリのRails。そこまで必要ないよ。と、ERBでゴリゴリ。メンドクセー。やっぱ、Railsで。などと、陽はまたのぼりくりかえしてーゆく。RubyのWebフレームワークは他にもあるけど。。軽くていいんだ。PHPを使いたくないだけなんだ。 そんな悩ましさを解消してくれるフレームワークを発見してしまいました。「Sinatra」でございます。こいつは、軽そうだ。 - [Sinatra](http://www.sinatrarb.com/) サイトのトップページに書かれているコード。これが、サクサク感をかもし出してくれています。 ```ruby require 'rubygems' require 'sinatra' get '/hi' do "Hello World!" end ``` 説明読まなくても解るよ、これ。 日本語の解説スライドがあります。よく解る解説ー。 公式サイトのREADMEを読めば、だいたいOK。 - [Sinatra: README](http://www.sinatrarb.com/intro.html) パラメータを取得したい。 ```ruby get '/hello/:name' do # matches "GET /foo" and "GET /bar" # params[:name] is 'foo' or 'bar' "Hello #{params[:name]}!" end ``` こんな取り方も。 ```ruby get '/say/*/to/*' do # matches /say/hello/to/world params[:splat] # => ["hello", "world"] end ``` 正規表現で取得する方法もあります。 Railsのようにテンプレートを使いたい。hamlもerbも使えます。 ```ruby get '/' do haml :index end ``` `./views/index.haml` がテンプレート。 ```ruby get '/' do erb :index end ``` `./views/index.erb` がテンプレート。 スタイルシートにはsassが使えます。 テンプレートを別ファイルにしなくてもOK。 ```ruby require 'rubygems' require 'sinatra' get '/' do haml :index end __END__ @@ layout %html = yield @@ index %div.title Hello world!!!!! ``` Railsのようにhelperやfilterも作れます。 テスト用のmoduleが用意されています。 ステキです。 まだ使ってないけど、ホレた。