Ada banyak hal yang spesifik, tetapi pola keseluruhan yang kami gunakan adalah "membungkus dan memperluas". Gagasan umum adalah membuat buku masak yang tergantung pada buku masak komunitas, biasanya dinamai mycompany_originalthing
, dan kemudian membuat resep dengan apa yang disebut include_recipe 'originalthing::whatever'
tetapi dengan lebih banyak barang ditambahkan sebelum / sesudah atau dengan panggilan ke hal-hal seperti edit_resource
mengubah sumber daya. Hindari edit_resource
jika memungkinkan karena mengarah ke kode rapuh, tetapi ada jika Anda membutuhkannya. Anda juga dapat menggunakan buku resep bungkus untuk mengatur atribut, subkelas atau membungkus sumber daya khusus, dan sebagainya.
Untuk kasus khusus "Saya perlu mengubah template dalam resep komunitas" akan terlihat seperti ini:
include_recipe 'original::whatever'
edit_resource!(:template, '/path/to/something') do
source 'mytemplate.erb'
cookbook 'mycompany_original'
end
Anda dapat menemukan detail lebih lanjut tentang edit_resource
dan teman-teman di https://coderanger.net/rewind/
Dengan buku masak yang didasarkan pada sumber daya khusus alih-alih resep, hal-hal bisa menjadi lebih kompleks tetapi spesifiknya sangat bergantung pada bagaimana tepatnya buku masak yang Anda kembangkan ditulis.