参照から値へ(Change Reference to Value)

コードの臭い

イミュータブル(書き換え不能)で小さく、管理しにくい参照オブジェクトを持っている。

テストコード

# rspec

describe Currency do
  let(:currency_1_new) { Currency.new("USD") }
  let(:currency_2_new) { Currency.new("USD") }

  describe "==" do
    it { currency_1_new.should_not == currency_2_new }
  end

  describe "eql?" do
    it { currency_1_new.should_not eql(currency_2_new) }
  end
end

※参考資料
 リファクタリング:Rubyエディション