(ハライチ感)

Foo.configure do |config|
  config.name = "foo"
  config.email = "foo@example.com"
end

こっちでもかけたりする。

Foo.config.name = "foo"
Foo.config.email = "foo@example.com"

こういうやつ。

実装は大体こういう感じになってる。

module Foo
  class << self
    def configure
      yield config
    end

    def config
      @_config ||= Config.new
    end
  end

  class Config
    attr_accessor :name, :email

    def initialize
      @name = "no name"
      @email = "default@example.com"
    end
  end
end

これrubyでよくあるけど(他の言語であんま見ない)これなんて呼ぶのがいいのかな?

フィヨルドブートキャンプで説明する時にこれを表現したくても

「blockで設定するやつ」

としか言えない。

「なんでこれで設定できるんですか?」

と言われても、口で説明するのが大変なのでここに置いておきます。

Comments


Option