6

YAML.load_file を使用するときに、Ruby に初期化メソッドを強制的に呼び出すことは可能ですか? シリアル化しないインスタンス変数の値を提供するために、メソッドを呼び出したいと思います。コードを別のメソッドに分解して、YAML.load_file を呼び出した後にそのメソッドを呼び出すことができることはわかっていますが、この問題を処理するためのより洗練された方法があるかどうか疑問に思っていました。

4

1 に答える 1

3

私はあなたができるとは思わない。追加するコードは逆シリアル化されるクラスに固有のものであるため、クラスに機能を追加することを検討する必要があります。たとえば、Fooデシリアライズするクラスを次のようなクラス メソッドに追加できます。

class Foo
  def self.from_yaml( yaml )
    foo = YAML::load( yaml )
    # edit the foo object here
    foo
  end
end

myFoo = Foo.from_yaml( "myFoo.yaml" )
于 2009-12-01T06:33:59.570 に答える