全体で文字列を ID として使用するライブラリを使用しています。これらの ID の代わりに使用できるクラスを作成したいのですが、既存のコードでは文字列のように見えます。たとえば、次のような既存のテストがあります。
require 'test/unit'
class IdString < Hash
def initialize(id)
@id = id
end
def to_s
@id
end
end
class TestGet < Test::Unit::TestCase
def test_that_id_is_1234
id = IdString.new('1234')
assert_match(/1234/, id)
end
end
残念ながら、これは失敗します:
TypeError: can't convert IdString to String
ID が文字列であることを期待するすべての既存のコードを変更せずにこれを修正する方法はありますか?