bulletのraise = true便利

READMEではテストのところで使われてるけど、developmentでも設定しておくと、解消しないとどうしようもなくなるので良い。

git config --local core.quotepath false

gitで日本語ファイル名を扱わざるを得ない事態になったので、これを打った。
一見問題なさそうだけど、良からぬことが起きないか様子見中。

shoulda-matchersでshould_not allow_value

thoughtbot/shoulda-matchers · GitHub は面倒臭いValidationなどのテストをお手軽に書ける素敵Gem。

許容文字列のチェックも簡単。

it { should allow_value('http://foo.com', 'http://bar.com/baz').for(:website_url) }

ただ、同じノリで以下のように書くとハマる。
'fiz'しかチェックされない)

it { should_not allow_value('fiz', 'buz', 'bar').for(:website_url) }

正しくはこう。

it { should_not allow_value('fiz').for(:website_url) }
it { should_not allow_value('buz').for(:website_url) }
it { should_not allow_value('bar').for(:website_url) }

shoulda-matchers/allow_value_matcher.rb at master · thoughtbot/shoulda-matchers · GitHub
に書いてある。

ちゃんと読もう、自分…。

Regexp.escape

何も考えずに

expect(foo).to match(/#{bar}/)

みたいなテストを書いてたら、たまに落ちる。

なんでかな、と思ったら、barに正規表現の文字列が入ることがあった。
※ barはSecureRandom.urlsafe_base64で生成した文字列

expect(foo).to match(Regexp.escape(bar))

で事なきを得た。

Regexp.escape、忘れがちだ。気をつけよう。

au iPhoneの請求額が急に500円高くなった

auスマートバリュー mineに申し込んだので、普段はチェックしない携帯の請求額を確認していた。
すると、今月から急にオプション使用料が6000円から6500円に上がっている!?

明細を見ると…「テザリングオプション」と書いてある。
あー、確かにiPhone 5買った時に2年間無料で申し込んでるから、もう無料期間終わってるなぁ。

が、申し込んだのは2年前の9月なのに、なぜ今更?

テザリングオプションは一度解約したらもう1回無料にできたりとか、いろいろバグあったっぽいから、これもバグだろうか。
で、スマートバリュー適用にあたり、料金が見直されて、誤って無料になってたのが修正された、的な。

なんともリアクションしづらい事態である。