ブログ

読んで思い出す。忘れるために書く

Q. RSpec で定数定義の有無を確認したい

A. (subject を定義して) it { is_expected.to be_const_defined :FOO } と記述する

回答の例 にあるように、be_have_ で柔軟なテストが可能になっている

The reason is that Rspec has "magic" matchers for methods starting with be_ and have_. For example, it { should have_green_pants } would assert that the has_green_pants? method on the subject returns true.

In the same fashion, an example such as it { should be_happy } would assert that the happy? method on the subject returns true.

So, the example it { should be_const_defined(:VERSION) } asserts that const_defined?(:VERSION) returns true.

Links

複数 Rails インストール済み環境でのバージョン切り替え挙動について

GitHub Issue に調査結果を書いた のでこちらにも転載

Rails の複数バージョンがインストールされている環境で、どのようにバージョンが切り替わるのか、調査

TL;DR

プロジェクトディレクトリの内外で、Rails に訊ねたバージョンが切り替わる

状況説明 & 再現手順

状況説明を兼ねて、再現手順を記載

大まかな流れ

  1. Rails gem の複数バージョン インストール
  2. バージョンを指定して Rails のプロジェクト作成
  3. プロジェクトディレクトリ 内・外で Rails のバージョン確認

再現手順

状況を同じにするため、次のコマンド群を打つことで再現可能にします

Rails のインストール (複数バージョン)

# バージョンを指定して Rails をインストール
# 2 つの、異なるバージョンをインストールする
gem install rails -v 5.2.4.3
gem install rails -v 6.0.3.2

バージョンを確認

# インストール済みの gem のリストを表示 (Rails)
# (正規表現で「rails」で始まって終わる語を絞り込み)
gem list --local ^rails$

# =>
# *** LOCAL GEMS ***
#
# rails (6.0.3.2, 5.2.4.3)

今有効なバージョンは?

cd ~ # Home ディレクトリに移動

# 最新バージョンが返ってくる
rails -v # => 6.0.3.2

バージョンを指定して Rails プロジェクト作成

#
# 旧版を指定してプロジェクト作成
#
mkdir my_project && cd $_ # プロジェクトディレクトリを作成して移動
rails _5.2.4.3_ new . --skip-bundle

プロジェクトディレクトリ 内・外で Rails のバージョン確認

プロジェクト内

pwd # => /[...snip...]/my_project
rails -v # => 5.2.4.3
bundle e rails -v  # => 5.2.4.3

Rails の場合、プロジェクト内のバージョンを優先的に利用する処理が記述されているらしい

Ref: Rails 4.1以降のコンソールコマンドは必ず bin/ を付けなきゃいけないの? - Qiita , なんで bin/ がいらないの?

(つまり、Rails でない場合、 bundle exec 無しだと ここで最新バージョンが返ってくる)

プロジェクト外

cd ~ # Home ディレクトリに移動
# 最新バージョンが返ってくる
rails -v # => 6.0.3.2

Q. Bash で補完したときに表示される文字の色設定を変えたい

A. colored-stats を on にして、LS_COLORS設定値を自分好みに変更する

BashINPUTRC環境変数設定がなければ ~/.inputrc を読みに行くので、そこに設定値を書く

~/.inputrc :

colored-stats On

環境変数は適当な場所 (~/.bash_profile, ~/.bashrc) に書く

~/.bashrc :

# MacOS のターミナルの場合に色設定を変更する
if [[ $(uname -s) -eq 'Darwin' ]]; then
  export LS_COLORS="di=36;40:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=36;42:ow=30;43"
fi

ls -G も色設定をしたければ LSCOLORSgxfxcx... 形式で値を入れる

Links

Q. インデントに表示している文字の色を設定したい (vim-indent-guides)

A. ドキュメント を参照して IndentGuidesOdd, IndentGuidesEven のハイライト設定の値を変更する

autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd  guibg=Grey11 ctermbg=234 guifg=Grey42 ctermfg=242
autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=Grey19 ctermbg=236 guifg=Grey35 ctermfg=240

Links

Q. Vim でタブ文字表示にわかりやすく文字を設定したい

A. listchars に値を設定する

set listchars=tab:»・

その他の制御文字に対しても文字表示を設定できる

set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣

Links

Q. Google Chrome で日本語 Web ページが文字化けする (Docker 環境)

A. 追加でフォントをインストールする

RUN apt-get -qqy update \
      && apt-get -qqy --no-install-recommends install \
      libfontconfig \
      libfreetype6 \
      xfonts-cyrillic \
      xfonts-scalable \
      fonts-liberation \
      fonts-ipafont-gothic \
      fonts-wqy-zenhei \
      fonts-tlwg-loma-otf

gouf.hatenablog.com

過去記事で、日本語を含むページのスクリーンショットを保存したら豆腐になってるのを確認できたので、今回の記事で対応した

Link

Watir を Docker 環境で動かして Web ページのスクリーンショットを撮る

リポジトリを作った : gouf/watir_in_docker_demo - GitHub

詳しくはそちらを参照のこと

今回は最小限の環境で動くのを確認するのが目的だった

もし次のステップを設定するなら、Watir を絡めたコードをもう少しモリモリ書いて動かしてみたい

Links