は、我々は2つのリソースを持っているとしましょう方法(シェフのリソース)を参照してくださいしないでください。しかし、私がレシピでprocを定義すると、owner
、group
などのNoMethodErrorが発生します。どうしてですか?レキシカルスコープは違いはありませんか?その結果、self.instance_eval &common_cfg
を使用しなければなりません。なぜならシェフは、(反射のたくさんの)実装されているかのブロックは
common_cfg = Proc.new {
owner 'root'
group 'root'
}
template 'template1' do
common_cfg.call
end
template 'template2' do
common_cfg.call
end
であるあなたがそれグローバル( '$のcommon_cfg')にすると、エラーが発生しますか? –
NoMethodErrorがproc(所有者、グループなど)のコンテキストで発生するため、proc変数はきれいに評価されます。 – m33lky
ああ、 gotcha - コメントを削除します。 –