sinatraの環境構築めもです。
sinatraって?
RubyのWebアプリケーションフレームワークです。
RubyのフレームワークというとRailsが覇権ですが、sinatraはRailsに比べて超小規模(画面遷移が数画面)のアプリ開発に向いていると思います。
なんかサクッと作ってみたいだけなのにRailsは実装に際してルール多すぎるんだよ!という方にはオススメ。
超小規模〜小規模 → sinatra
中規模 → 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/
驚きの白さ。。。っ!!
以上で環境構築は完了!
補足)reloaderについて
sinatraはそのままだとrbファイルを編集した際、その内容をWebサーバに反映させるためには都度サーバを再起動させないといけません。
それはとても面倒。。。
ということでsinatra-contirbのreloaderを使用すれば再起動することなく自動でサーバに編集内容が反映されます。上記サンプルコードの「require 'sinatra/reloader'」はそのための記述です。