Допустим, у нас есть два ресурса:
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