# Rubyの軽量Webフレームワーク「Sinatra」がステキ
_published: 2009/04/22_ 
フルスタックがウリの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が用意されています。
ステキです。
まだ使ってないけど、ホレた。