Rubyでとあるライブラリを使っていた時、
foo = Foo.first
SomeFormatter.format(foo.bar) # 正しい値
SomeFormatter.format(foo.bar) # 誤った値
という感じで、2回目以降の結果がおかしいという事態が起きた。
ずっと使ってたライブラリで今まで問題なかったのに、なんでだ?と思って中身を読んでみたら、引数をgsub!
されてた。
これまでは使い捨ての値しか渡したことなかったので、問題に気付かなかった。(今回インスタンス変数を渡した)
2回呼ぶ、みたいなテスト書いてなくてテストで気づけず、わりと焦った…。