しふみんのブログ

しふみんのブログです。

Rubyプロジェクトの始め方の備忘録

Rubyプロジェクトの始め方の備忘録

自分の記憶力が薄弱すぎて、Rubyで何か書くかとなった時にいつも下準備の仕方を調べている気がするので、後で楽するために備忘録を残しておきたいと思います。

余談ですが、自分の記憶力が薄弱すぎて(大事なことなので2回繰り返した)「自分のために残すメモ的な意味の熟語なんだっけ?忘備録だったっけ?」って思ってググったら、「備忘録」(忘れるのに備える記録で備忘録)が正しくて、よく見る「忘備録」は誤記で「備えるのを忘れた記録になる」という意味になってしまうようです。 勉強になりました。

前提となる環境

  • Mac OS X
  • giboをインストール済
  • ruby-build,rbenvをインストール済

準備

ディレクトリを作ってgit initしてからgiboで.gitignoreをお手軽に作成する。giboは、RubyOSXVimを引数に指定する(OSXVimはなくてもいいかも)

$ mkdir rubyproject
$ cd rubyproject
$ git init
$ touch .gitignore
$ gibo Ruby OSX Vim >> .gitignore

simonwhitaker/gibo · GitHub https://github.com/simonwhitaker/gibo

Rubyの設定

使用するRubyの設定をする。 rbenvでその時点での最新版のRubyを入れる。

$ rbenv install -l
$ rbenv install x.x.x(インストールするRubyのバージョン)
$ rbenv local x.x.x
$ rbenv rehash

sstephenson/rbenv · GitHub https://github.com/sstephenson/rbenv

Bundlerの設定

基本的にプロジェクトで使用するBundlerでgemはローカルディレクトリに保存するけど、Bundlerとrubocopはシステムワイドにインストールしているので、その2つを最新版にする。 その後使用するgemをローカルにインストールする。

$ gem update --system
$ gem update bundler
$ gem update rubocop
$ bundle init
$ vim Gemfile
(使うgemを記述する)
$ bundle install --path vendor/bundle

Bundler: The best way to manage a Ruby application's gems http://bundler.io/

Gemfile

プロジェクトで使用するgem以外のデバッグ等に使用するgemは以下を使っている。

source "https://rubygems.org"

ruby 'x.x.x'(インストールしたRUbyのバージョン)

group :development do
  gem 'awesome_print'
  gem 'tapp'
  gem 'pry'
  gem 'pry-doc'
  gem 'pry-byebug'
  gem 'pry-stack_explorer'
  gem 'refe2'
end
  • awesome_print

デバッグ時等にオブジェクトのデータ構造を分かりやすく表示してくれる。 .pryrcに下記のように書いてpry起動時に自動的にrequireするようにしている。

# awesome_print
begin
  require "awesome_print"
  AwesomePrint.pry!
rescue LoadError => e
  puts "no awesome_print"

michaeldv/awesome_print · GitHub https://github.com/michaeldv/awesome_print

  • tapp

メソッドチェーンの途中に挟むと、pp(puts)しながらレシーバを返すObject#tappやObject#taputsが使えるようになる。 プリントデバッグが捗る。

esminc/tapp · GitHub https://github.com/esminc/tapp

  • pry

強いirb

pry/pry · GitHub https://github.com/pry/pry

  • pry-doc

show-source でCで書かれているRuby組み込みのクラスやメソッドのソースを見ることができる。

pry/pry-doc · GitHub https://github.com/pry/pry-doc

  • pry-byebug

binding.pryデバッグする時にピンポイントで処理を止めてステップ実行できる。

deivid-rodriguez/pry-byebug · GitHub https://github.com/deivid-rodriguez/pry-byebug

  • pry-stack_explorer

デバッグ時に show-stack でその時のスタックの情報が見られる。

pry/pry-stack_explorer · GitHub https://github.com/pry/pry-stack_explorer

  • refe2

refeコマンドラインからRubyリファレンスマニュアルを見ることができる。

refe2 | RubyGems.org | your community gem host https://rubygems.org/gems/refe2/versions/0.9.0

終わりに

Ruby初心者なので、Rubyで小規模な開発を行う時に便利なgemが他にあったら教えてほしいです。