Hatena::ブログ(Diary)

このブログは証明できない。

2009-04-22

[]Rubyの軽量WebフレームワークSinatra」がステキ

フルスタックがウリのRails。そこまで必要ないよ。と、ERBでゴリゴリ。メンドクセー。やっぱ、Railsで。などと、陽はまたのぼりくりかえしてーゆく。RubyのWebフレームワークは他にもあるけど。。軽くていいんだ。PHPを使いたくないだけなんだ。


そんな悩ましさを解消してくれるフレームワークを発見してしまいました。「Sinatra」でございます。こいつは、軽そうだ。


サイトのトップページに書かれているコード。これが、サクサク感をかもし出してくれています。

require 'rubygems'
require 'sinatra'

get '/hi' do
  "Hello World!"
end

説明読まなくても解るよ、これ。


日本語の解説スライドがあります。よく解る解説ー。


公式サイトのREADMEを読めば、だいたいOK。


パラメータを取得したい。

get '/hello/:name' do
  # matches "GET /foo" and "GET /bar"
  # params[:name] is 'foo' or 'bar'
  "Hello #{params[:name]}!"
end

こんな取り方も。

get '/say/*/to/*' do
  # matches /say/hello/to/world
  params[:splat] # => ["hello", "world"]
end

正規表現で取得する方法もあります。


Railsのようにテンプレートを使いたい。hamlもerbも使えます。

get '/' do
  haml :index
end

./views/index.hamlテンプレート

get '/' do
  erb :index
end

./views/index.erbがテンプレート

スタイルシートにはsassが使えます。

テンプレートを別ファイルにしなくてもOK。

require 'rubygems'
require 'sinatra'

get '/' do
  haml :index
end

__END__

@@ layout
%html
  = yield

@@ index
%div.title Hello world!!!!!

Railsのようにhelperやfilterも作れます。


テスト用のmoduleが用意されています。


ステキです。


まだ使ってないけど、ホレた。

noplansnoplans 2009/04/23 21:06 いちおうリンクを。http://d.hatena.ne.jp/darashi/20090418/1240035996

babydaemonsbabydaemons 2009/10/01 16:09 Sinatra知らずにRailsお勉強しちゃったけど、いまからRails始める同僚にはSinatra薦めようかしら・・・

shunsukshunsuk 2009/10/01 17:31 Railsは全部入りですが、Sinatraは単体では足りないものが出てきますよ。