デザイナー向けsinatra簡単入門 part.1
7月24日2011
WordPressなら結構触ったことがあるけどちゃんとしたプログラミングやrubyはちょっと・・・というデザイナー向けsinatra簡単入門を書いてみます。
sinatraはWebアプリが超簡単に書けるライブラリなのでWebが分かった感を掴むには最適だと思います。
rubygemの設定
rubyにはrubygemというライブラリを管理する仕組みがあります。rubyに対するプラグインみたいなもんだと考えてもらって結構です。プラグイン(gemと言います)みたいなもんだけあって、手っ取り早くて便利なものが沢山あります。sinatraもそのひとつです。
Macでの簡単rubygem設定
Macでややこしいことをせずにrubygemを使うには下記の通りにしてください。理由は聞かないで下さい。
~/.bash_profileに下記の通り書いて保存、ターミナルを再起動する。
export GEM_HOME=~/.gem/ruby/1.8
(ターミナルの使い方についてはこちらを参照してください)
sinatraのインストール
これでrubygemの準備ができました。sinatraをインストールしてみましょう。rubygemの検索・インストール・アンインストールにはgemコマンドを使います。
$ gem install sinatra
これでsinatraが必要とする他のgemも勝手にネットからダウンロードしてきてインストールしてくれます。便利です。
最小限Webアプリ
早速、トップページ(/)にアクセスするとhelloと表示するだけのWebアプリ(hello.rb)をテキストエディットで書いてみます。

上記をhello.rbというファイル名で保存したらターミナルから下記のようにrubyプログラムとして実行してみてください。
$ ruby hello.rb
何か表示されて止まると思うので、その状態でブラウザでhttp://localhost:4567/にアクセスしてみてください。

最低限のWebアプリができました。
中身の説明
requireは他のrubyプログラムを読み込むメソッドです。(メソッド=機能ぐらいに思って下さい)
rubygemを使うにはまずrubygemというプログラムを読み込む必要があるので1行目でrequireしています。2行目ではsinatraを使うのでrequireしています。
4〜6行目は、「'/'にアクセスしたら'hello'を表示する」みたいな意味です。
getというのはsinatraが提供するメソッドです。他にpost, put, deleteなどがあります。対応するURLにアクセスが来たらdo ~ end(ブロックといいます)の中身を実行して最後の行を表示してくれます。
対応するURLを増やす
トップページだけじゃ寂しいので/helloというURLも追加してみます。
require 'rubygems'
require 'sinatra'
get '/' do
'hello'
end
get '/hello' do
'<html><head><title>hello</title></head><body><h1>hello</h1></body></html>'
end
こんな感じにまともなHTMLを返すこともできます。
hello.rbを再起動してみましょう。(動いているプログラムを止めるにはターミナルでControl + Cキーです)
$ ruby hello.rb
http://localhost:4567/helloにアクセスしてみます。

このプログラムを今は自分のMacで動かしていますが、ネットに公開されているPC(いわゆるサーバー)で実行すればれっきとしたWebアプリです。
既にこれだけでもかなりのWebサイトが作れることにお気づきの方もいらっしゃるかもしれません。Rubyの知識などはすっ飛ばして進んでいますが、次回はHTMLファイルを表示する方法を紹介したいと思います。




