блоки не видят методы (шеф-ресурсы)

Допустим, у нас есть два ресурса:

template 'template1' do
  owner 'root'
  group 'root'
end

template 'template2' do
  owner 'root'
  group 'root'
end

Я хочу повторно использовать код внутри ресурсов. Однако, если я определяю proc в рецепте, вы получаете NoMethodError для owner, groupи т. д. Почему это происходит? Лексическая область видимости не отличается, не так ли? В результате я должен использовать 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
6
задан m33lky 13 May 2012 в 20:40
поделиться