susunshunのお粗末な記録

お粗末に丁寧に生きる

sinatraの開発環境構築からHelloWorldまで

sinatraの環境構築めもです。

sinatraって?

RubyのWebアプリケーションフレームワークです。
RubyフレームワークというとRailsが覇権ですが、sinatraRailsに比べて超小規模(画面遷移が数画面)のアプリ開発に向いていると思います。

なんかサクッと作ってみたいだけなのにRailsは実装に際してルール多すぎるんだよ!という方にはオススメ。

超小規模〜小規模 → sinatra
中規模 → Rails

という棲み分けでしょうか。

公式サイト

f:id:susunshun:20150422235950j:plain
Sinatra: README (Japanese)

導入するもの

ruby, gemあたりは以前Railsを勉強していたときに導入したのですが最新バージョンにアップデートします。

Ruby

バージョン確認。最新版は2.2.2

$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin13.0]

古いのでアップデートします。

$ rbenv install 2.2.2

※10分強かかります

rbenvはRubyのバージョンを管理してくれるツールです。
入れてない方はgoogle先生に聞いてください!

インストールが完了したら、2.2.2を標準で使用するバージョンに指定

$ rbenv global 2.2.2

これでRubyは最新になりました!

$ ruby -v
2.2.2

gem

まずはバージョン確認

$ gem -v
2.2.2

入れてない人はGoogle先せ(ry

古いのでアップデートします

$ gem update --system

gemも最新になりました

$ gem -v
2.4.6

ほか

以下コマンドでインストール

$ gem install sinatra
$ gem install sinatra-contrib
$ gem install activerecord
$ gem install sqlite3

sinatraはインストールが途中で止まってん?ってなりますがドキュメントをダウンロードしているだけらしいのでしばらく待てば完了します。

sinatraを使ってみよう

main.rbの作成

任意のディレクトリで”main.rb”というファイルを作成し、以下コードを書きます。
公式サイトのサンプルコードを少しだけ書き換えました。

require 'sinatra'
require 'sinatra/reloader'
 
get '/' do
    "<h1>Hello Sinatra<h1>"
end
 
get '/hamachi' do
    "<h1>sub page<h1>"
end

getの後の'/'や'/hamachi'はリクエストのパスに対応しています

'/' → http://localhost:4567/
'/hamachi' → http://localhost:4567/hamachi
sinatraのデフォルトのポートは「4567」です

各セグメントのdo〜endに処理内容を記述します。
上記のサンプルコードでは単純にHTMLを出力するだけです。

サーバの起動

今回はrubyにデフォルトで付属しているWebサーバ、WEBrickを使用します。
rubyを導入してれば一緒にインストールされているはずなので以下コマンドでサーバを起動。

$ ruby main.rb

最後にページの確認
http://localhost:4567/
f:id:susunshun:20150422234906p:plain

http://localhost:4567/hamachi
f:id:susunshun:20150422234916p:plain

驚きの白さ。。。っ!!
以上で環境構築は完了!

補足)reloaderについて
sinatraはそのままだとrbファイルを編集した際、その内容をWebサーバに反映させるためには都度サーバを再起動させないといけません。
それはとても面倒。。。
ということでsinatra-contirbのreloaderを使用すれば再起動することなく自動でサーバに編集内容が反映されます。上記サンプルコードの「require 'sinatra/reloader'」はそのための記述です。