Foo
のサブクラスであるクラスがありますHash
。
class Foo < Hash
# whatever Foo-specific methods/etc
end
YAMLでファイルにダンプすると、クラスを示すタグが書かれています。
> f = Foo.new
> f[:bar] = "baz"
> puts YAML.dump(f)
--- !ruby/hash:Foo
:bar: baz
単純な古いハッシュとして記述したいだけです( ではありません!ruby/hash:Foo
)
> puts YAML.dump({bar:"baz"})
---
:bar: baz
...私のデータの消費者が について知る必要がないようにFoo
. クラスに追加してシリアル化用に変換する魔法のメソッド、または YAML.dump に渡す魔法のオプションはありますか?
もちろん、1 つのFoo
オブジェクトをハッシュに変換するのは簡単ですが、ダンプしたい実際のハッシュ内の任意のレベルでネストされて表示される可能性があり、検索と置換を行う必要はありません。