質問に回答したのでその転記
Ruby 2.7 のパターンマッチ (実験的な機能) で書いてみた
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_
andhave_
. For example,it { should have_green_pants }
would assert that thehas_green_pants?
method on thesubject
returnstrue
.In the same fashion, an example such as
it { should be_happy }
would assert that thehappy?
method on thesubject
returnstrue
.So, the example
it { should be_const_defined(:VERSION) }
asserts thatconst_defined?(:VERSION)
returnstrue
.
※ GitHub Issue に調査結果を書いた のでこちらにも転載
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
# # 旧版を指定してプロジェクト作成 # mkdir my_project && cd $_ # プロジェクトディレクトリを作成して移動 rails _5.2.4.3_ new . --skip-bundle
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
A. colored-stats
を on にして、LS_COLORS
の設定値を自分好みに変更する
Bash は INPUTRC
の環境変数設定がなければ ~/.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
も色設定をしたければ LSCOLORS
に gxfxcx...
形式で値を入れる
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
A. listchars
に値を設定する
set listchars=tab:»・
その他の制御文字に対しても文字表示を設定できる
set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
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
過去記事で、日本語を含むページのスクリーンショットを保存したら豆腐になってるのを確認できたので、今回の記事で対応した