インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Sinatraで遊ぼう!準備編

Sinatraのインストール

Sinatraのインストールを行います。

gem install コマンドを叩けばいいんですが、Gemの管理がややこしくなるので、Bundlerを使います。

Bundlerとは

BundlerはRuby on Railsで標準採用されている、RubyGemsの依存関係管理ソフトウェアです。

Ruby on Rails専用なわけではなく、SinatraやフツーのRuby(Frameworkとかじゃない)など、Ruby系であれば使うことが出来ます。

Bundlerのインストール

以下のコマンドを実行すればOK

gem install bundler

railsとかを使っている人はすでに入ってると思います。
2度実行しても別段害はないです。

Bundlerの使い方

プロジェクトのディレクトリがない場合は作成します。

mkdir sinatra
cd sinatra

Gemfileと言われるファイルを作成します。
このファイルに使用するRubyのGemを記載していきます。

今回はSinatraを使いたいのでSinatra関連のGemを入れます。

$ bundle init
$ vi Gemfile
# A sample Gemfile
source "https://rubygems.org"

gem 'sinatra'
gem 'sinatra-contrib'
gem 'sqlite3'
gem 'activerecord'

# gem "rails"

bundle init はGemfileが存在しない場合は新しく作成してくれるbundlerのコマンドです。

Gemfileの中身です。

$ cat Gemfile
# A sample Gemfile
source "https://rubygems.org"

gem 'sinatra'
gem 'sinatra-contrib'
gem 'sqlite3'
gem 'activerecord'

# gem "rails"

sourceはbundle initでファイル作った時に書かれてなければ書いて下さい。
3行目以降は、使用するGemを書きます。

sinatraを使うのでgem \'sinatra\'を記載して下さい。

gem \'sinatra-contrib\' はsinatraをオートリロードするgemです。
rubyファイルを編集した際にその内容を自動で反映させてくれます。

DBにSQLiteを使いたいので、gem \'sqlite3\'も追加します。

あと、DBを便利に使うことができるActiveRecordも使いたいので、
gem \'activerecord\'も追加します。

Gemfileの用意ができたらGemfileがあるディレクトリでbundle installを実行して下さい。

Gemfileに記載したgemと、そのgemを使うために必要なgemがインストールされます。

$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Installing i18n 0.7.0
Installing json 1.8.2
Installing minitest 5.6.0
Installing thread_safe 0.3.5
Installing tzinfo 1.2.2
Installing activesupport 4.2.1
Installing builder 3.2.2
Installing activemodel 4.2.1
Installing arel 6.0.0
Installing activerecord 4.2.1
Installing backports 3.6.4
Installing multi_json 1.11.0
Installing rack 1.6.0
Installing rack-protection 1.5.3
Installing rack-test 0.6.3
Installing tilt 1.4.1
Installing sinatra 1.4.6
Installing sinatra-contrib 1.4.2
Installing sqlite3 1.3.10
Using bundler 1.7.6
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

きちんと入ったか確認するため、gem listを実行してみます。

$ gem list

*** LOCAL GEMS ***

activemodel (4.2.1)
activerecord (4.2.1)
activesupport (4.2.1)
arel (6.0.0)
backports (3.6.4)
bigdecimal (1.2.4)
builder (3.2.2)
bundler (1.7.6)
bundler-unload (1.0.2)
executable-hooks (1.3.2)
gem-wrappers (1.2.7)
i18n (0.7.0)
io-console (0.4.2)
json (1.8.2, 1.8.1)
minitest (5.6.0, 4.7.5)
multi_json (1.11.0)
psych (2.0.5)
rack (1.6.0)
rack-protection (1.5.3)
rack-test (0.6.3)
rake (10.1.0)
rdoc (4.1.0)
rubygems-bundler (1.4.4)
rvm (1.11.3.9)
sinatra (1.4.6)
sinatra-contrib (1.4.2)
sqlite3 (1.3.10)
test-unit (2.1.5.0)
thread_safe (0.3.5)
tilt (1.4.1)
tzinfo (1.2.2)

OKですね!!

その他Bundlerで知っておくといいこと

bundle update

を実行するとgemのバージョンなどを上げてくれます。

ただし、Gemfile内で

gem "sinatra", "~> 1.4.2"

といったように、gemのバージョンを指定していると
アップデートされずそのバージョンのgemが使用されます。

Bundlerの使い方自体はこんなかんじです。

次は実際にSinatraを使ってみます。

  • B!