Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

Sinatraをやってみました。

Sinatra: README(Japanese)によると,

SinatraRubyで最小労力で手早くウェブアプリケーションを作成するためのDSLです。

とあります。Ruby on Railsを少しかじったときには難しいなぁという印象があったのですが,Sinatraはとっつきやすそうという第一印象です。

Googleで検索したら,「第7回 小規模Webアプリのためのフレームワーク,Sinatra」というページを見つけましたので,読んでみました。リスト2では,erbを用いて作られていますが,Hamlについても興味を持ったので,リスト2をHamlを使って書き換えてみました。こんな感じでしょうか??

hello.rb

# -*- coding: utf-8 -*-
require 'rubygems'
require 'sinatra'

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

get '/' do
  haml :index
end

post '/hello' do
  haml :hello
end

__END__

@@ layout
%html
  %body
    %h1 Hello World
= yield

@@ index
%p あなたの名前は?
%form{ :action => '/hello' :method => 'POST'}
  %input{ :type => 'text', :name => 'name' }
  %input{ :type => 'submit', :name => '送信' }

@@ hello
%p こんにちは,#{h params[:name]} さん!
%a{ :href => '/'} 戻る

あとは,

$ ruby hello.rb

して,http://localhost:4567/ にアクセスするだけです。