RackとERBを使って、超シンプルなRubyのWebアプリを作る
Railsで使われているRackとERB。いつもRailsにお任せだから、たまにはRailsの皮をはいで生で触ってみたい!ということで、超基本的な部分(通常表示, リダイレクト, not found)だけいじったのでメモ。
・/にアクセスすると、/hogeにリダイレクトされる
・/hogeは変数nameとsexに格納した値をerbで表示する
・それ以外のURLにアクセスされたら404エラーを返す
という代物を作る
config.ru
#coding: utf-8 run lambda {|env| request = Rack::Request.new(env) case request.path when '/' Rack::Response.new {|r| r.redirect("/hoge")} when '/hoge' name, sex = 'maeharin', 'man' html = ERB.new(<<-EOF).result(binding) <html> <head><meta charset="utf-8"></head> <body> 私の名前は<%= name %>。性別は<%= sex %>です。 </body> </html> EOF Rack::Response.new(html) else Rack::Response.new("not found", 404) end }
サーバー起動
config.ruがあるディレクトリで
$ rackup
localhost:9292にアクセス
動いた!シンプルで素敵すなあ。色々いじってみよう。
※RackとERBの詳細は以下の記事などを参考。
第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge|gihyo.jp … 技術評論社
Rubyist Magazine - 標準添付ライブラリ紹介 【第 10 回】 ERB