Rubyでとあるライブラリを使っていた時、

foo = Foo.first
SomeFormatter.format(foo.bar) # 正しい値
SomeFormatter.format(foo.bar) # 誤った値

という感じで、2回目以降の結果がおかしいという事態が起きた。

ずっと使ってたライブラリで今まで問題なかったのに、なんでだ?と思って中身を読んでみたら、引数をgsub!されてた。

これまでは使い捨ての値しか渡したことなかったので、問題に気付かなかった。(今回インスタンス変数を渡した)

2回呼ぶ、みたいなテスト書いてなくてテストで気づけず、わりと焦った…。