sinatraインストール、動かしてみる

これをやってみたい http://gihyo.jp/dev/serial/01/ruby/0009

sudo gem install rack sinatra sequel haml


やっぱこっちの簡単なのから動かす
http://gihyo.jp/dev/serial/01/ruby/0007
フルコピペでいく


sinatra-test.rb

require 'rubygems'
require 'sinatra'

helpers do
  include Rack::Utils; alias_method :h, :escape_html
end

template :layout do
  "<html><body><h1>Hello World</h1><%= yield %></body></html>"
end

get '/' do
  erb %{
    <p>あなたの名前は?</p>
    <form action='/hello' method='POST'>
    <input type='text' name='name'>
    <input type='submit' value='送信'>
    </form>
  }
end

post '/hello' do
  erb %{
    <p>こんにちは,<%= h params[:name] %>さん!</p>
    <a href='/'>戻る</a>
  }
end
ruby sinatra-test.rb

http://localhost:4567Mongrelで起動した。



ruby sinatra-test.rb -s webrickWebrickで起動できるはずだけどエラーがでて起動しない。


どうやらsinatra自体のバグで、webrickを検索できていないらしい
http://d.hatena.ne.jp/unageanu/20090525/1243268383


なので手動で登録する
sinatra-test.rb

require 'rubygems'
require 'sinatra'

Rack::Handler.register 'Webrick', 'Rack::Handler::WEBrick' # webrick登録

helpers do
  include Rack::Utils; alias_method :h, :escape_html
end

template :layout do
  "<html><body><h1>Hello World</h1><%= yield %></body></html>"
end

get '/' do
  erb %{
    <p>あなたの名前は?</p>
    <form action='/hello' method='POST'>
    <input type='text' name='name'>
    <input type='submit' value='送信'>
    </form>
  }
end

post '/hello' do
  erb %{
    <p>こんにちは,<%= h params[:name] %>さん!</p>
    <a href='/'>戻る</a>
  }
end


これでサーバーを切り替えられるようになった

ruby sinatra-test.rb -s webrick
ruby sinatra-test.rb -s mongrel