今回は、Ruby 製の軽量 Web アプリケーション作成のためのツール Sinatra の導入についてです。
いわゆる DSL(Domain Specific Language) というドメイン特化言語にあたります。
当方、将来 Sinatra 製 CMS の Lokka を導入したいという事もあり、試しにインストールしてみました。
作業記録
0. 前提条件
作業を試行したのは Cygwin 1.7.15 上ですが、Linux 等でも同様です。
使用した Ruby は 1.9.3-p194
使用した RubyGems は 1.8.24
今回は HTML/XHTML を生成するためのマークアップ言語 Haml を使用します。
今回は Gemfile を使用します。
そして、ディレクトリ構成は以下のようにしました。
1
2
3
4
5
/var/www/test_sinatra
Gemfile
test_sinatra.rb
views
+ index.haml
1. RubyGems パッケージ Sinatra のインストール
後に、Gemfile を作成して Sinatra についての記述もするので、実際はここでインストール必要もありませんが。
1
2
3
4
5
6
7
8
9
10
$ gem install sinatra
Fetching: rack-protection-1.2.0.gem (100%)
Fetching: sinatra-1.3.2.gem (100%)
Successfully installed rack-protection-1.2.0
Successfully installed sinatra-1.3.2
2 gems installed
Installing ri documentation for rack-protection-1.2.0...
Installing ri documentation for sinatra-1.3.2...
Installing RDoc documentation for rack-protection-1.2.0...
Installing RDoc documentation for sinatra-1.3.2...
2. RubyGems パッケージ Haml のインストール
後に、Gemfile を作成して Haml についての記述もするので、実際はここでインストール必要もありませんが。
1
2
3
4
5
6
$ gem install haml
Fetching: haml-3.1.6.gem (100%)
Successfully installed haml-3.1.6
1 gem installed
Installing ri documentation for haml-3.1.6...
Installing RDoc documentation for haml-3.1.6...
3. アプリ用ディレクトリ作成
今回は /var/www ディレクトリ配下の test_sinatra というディレクトリにアプリを作成します。
1
2
$ cd /var/www
$ mkdir test_sinatra
4. Gemfile 作成
Bundler を使用して RubyGems パッケージの導入を行うので Gemfile を作成する。
1
2
3
4
5
6
7
$ cd test_sinatra
$ vi Gemfile
source :rubygems
source "http://rubygems.org"
gem 'sinatra'
gem 'haml'
5. スクリプト作成
メインで使用する Ruby スクリプトを作成する。
【 ファイル名: test_sinatra.rb 】
1
2
3
4
5
6
7
require 'rubygems'
require 'sinatra'
require 'haml'
get '/' do
haml :index
end
6. view 用スクリプト作成
メインスクリプトから呼び出される Haml ファイルを作成する。
【 ファイル名: views/index.haml 】
1
2
3
4
5
6
7
8
!!!
%html
%head
%title Hello.
%body
%div#main
%h1 Hello Sinatra!!
%div.ruby= Time.now
7. Bundle インストール
bundle install を実行する。
必要な gem がインストールされる。
1
2
3
4
5
6
7
8
$ bundle install
Using haml (3.1.6)
Using rack (1.4.1)
Using rack-protection (1.2.0)
Using tilt (1.3.3)
Using sinatra (1.3.2)
Using bundler (1.1.4)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
8. 実行
以下のコマンドで実行する。
1
2
$ ruby test_sinatra.rb
== Sinatra/1.3.2 has taken the stage on 4567 for development with backup from Mongrel
9. 表示確認
ブラウザで http://localhost:4567 にアクセスして正しく表示される事を確認する。
参考サイト
意外と簡単に導入できました。
Ruby on Rails とは違ったおもしろさがありそうに感じました。
以上です。