るびまRubyist Hotlinks - インタビュイーの好きなメソッド・嫌いなメソッド一覧
Rubyist Magazine(るびま)には、著名なRubyistにインタビューを行うRubyist Hotlinksという企画がある。 Rubyist Hotlinksでは毎回「好きなメソッド、嫌いなメソッドはなんですか?」という質問がされるのでまとめた。
RSpecで「while line = gets」をテストする方法
RSpecでwhile line = gets
のような標準入力のループをテストしたいとき。
Kernel.#gets
はARGF
をレシーバとしたメソッドの省略形なので、ARGF.gets
をモックにすれば良い。
テストしたいコード:
# 標準入力を行ごとに区切って配列にするメソッド def foo ary = [] while line = gets ary << line.chomp end ary end
テストコード:
require "rspec" require "stringio" require_relative "foo" describe "foo" do it "標準入力を行ごとに区切って配列にする" do inputs = StringIO.new("line1\nline2\n") allow(ARGF).to receive(:gets) { inputs.gets } expect(foo).to contain_exactly("line1", "line2") end end
rbenvのインストールにはrbenv-installerを使おう(追記:使わない方がいい)
追記:2018-05-15
rbenv-installer
は以前とは別物になりました。
もはやrbenv-installer
を使うメリットはありません。
追記終わり。あとは古い内容。
rbenv-installer
を使うとrbenvとプラグインを同時に導入できる。
ruby-build
などを入れたりする必要がなくなる。
https://github.com/fesplugas/rbenv-installer
https://github.com/fesplugas/rbenv-installer
rbenv-installerを使ったrbenvのインストール
以下のコマンドでrbenv本体とruby-build
、rbenv-default-gems
、rbenv-gem-rehash
、rbenv-update
などのプラグインが一発でインストールされる。
$ curl https://raw.githubusercontent.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash
以下のコードを~/.bash_profile
や~/.bashrc
に追記してbashを再起動するとrbenv
が使えるようになる。
# rbenv export RBENV_ROOT="${HOME}/.rbenv" if [ -d "${RBENV_ROOT}" ]; then epxport PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init -)" fi
rbenv-installerで入るプラグイン一覧
個々の紹介はしないけどrbenv-installer
を使うとこれらがすべて使えるようになる。
- rbenv-bootstrap
- rbenv-default-gems
- rbenv-gem-rehash
- rbenv-update
- rbenv-use
- rbenv-vars
- rbenv-whatis
- ruby-build
はてなブログ始めました
Hello, world.