Diciamo che abbiamo due risorse:blocchi non vedono metodi (risorse chef)
template 'template1' do
owner 'root'
group 'root'
end
template 'template2' do
owner 'root'
group 'root'
end
mi piacerebbe riutilizzare il codice all'interno di risorse. Tuttavia, se definisco un proc nella ricetta, ottieni un NoMethodError per owner
, group
ecc. Perché succede? Lo scopo lessicale non è diverso, vero? Di conseguenza, devo usare 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
L'errore si verifica se si effettua un globale ('$ common_cfg')? –
La variabile proc è valutata bene, perché il NoMethodError si verifica nel contesto del proc (proprietario, gruppo ecc.) – m33lky
Oh; gotcha: cancellerà il commento. –