1

さまざまな方法で自分自身を初期化できるクラスを実装しました。

最初の方法: オブジェクトが作成され、属性は後で設定されます。

object = MyClass.new
object.name = 'Object'

2 番目の方法: 属性のハッシュがオブジェクト コンストラクターに渡されます。

MyClass.new(:name => 'Object')

3 番目の方法: ブロックがオブジェクト コンストラクターに渡されます。

MyClass.new do |object|
  object.name = 'Object'
end

私はActiveModelに触発されました

誰かがおそらくそれを別のgemとして実装したか、組み込みのRubyソリューションがあるのではないかと思っていましたか?

4

2 に答える 2

1

これがあなたが探しているものであるかどうかはよくわかりませんが、注射の宝石に興味があるかもしれません。

于 2012-05-14T11:41:02.303 に答える
1

私はこれを使用します(実際には宝石ではありませんが、それでも)...

https://github.com/guerilla-di/tracksperanto/blob/master/lib/tracksperanto/block_init.rb

そのモジュールをクラスに含めると、デフォルトのコンストラクターが取得されます。

非常に小さいので、プロジェクトにドロップするだけで完了です。

于 2012-05-14T14:44:59.470 に答える