Let's say we have two resources:
template 'template1' do
owner 'root'
group 'root'
end
template 'template2' do
owner 'root'
group 'root'
end
I'd like to reuse code inside resources. However, if I define a proc in the recipe, you get a NoMethodError for owner
, group
etc. Why does it happen? Lexical scope isn't different, is it? As a result I have to use 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