Quali passi potrebbero essere presi per ereditare e sovrascrivere alcune parti di un libro di cucina dello Chef?


9

Con oltre 3200 libri di cucina disponibili nel supermercato Chef, spesso c'è già un libro di cucina che copre il bisogno che devo risolvere.

Quasi ogni volta che è necessario apportare alcune modifiche a un modello, a una variabile o a una risorsa in un libro di cucina esistente.

Quali sono i passaggi per ignorare e / o migliorare i libri di cucina esistenti? Senza biforcare il loro codice e mantenendo la possibilità di ottenere aggiornamenti di versione in futuro.


1
La maggior parte dei libri di cucina ha un certo numero di attributi che possono essere semplicemente impostati durante la creazione di un libro di ricette wrapper. Di solito non è necessario "scavalcare" nulla per apportare modifiche attese.
pulcini,

Risposte:


13

Ci sono molti dettagli ma il modello generale che usiamo è "avvolgere ed estendere". L'idea generale è quella di creare un libro di cucina che dipende dal libro di cucina della comunità, di solito chiamato mycompany_originalthing, e quindi creare ricette in ciò che chiama include_recipe 'originalthing::whatever'ma con più cose aggiunte prima / dopo o con chiamate a cose come edit_resourcecambiare le risorse. Evita edit_resourcequando possibile poiché porta a un codice fragile, ma è lì se ne hai bisogno. È inoltre possibile utilizzare i ricettari wrapper per impostare attributi, sottoclassi o avvolgere risorse personalizzate e così via.

Per il caso specifico di "Ho bisogno di modificare un modello in una ricetta di comunità" sarebbe simile a questo:

include_recipe 'original::whatever'

edit_resource!(:template, '/path/to/something') do
  source 'mytemplate.erb'
  cookbook 'mycompany_original'
end

Puoi trovare maggiori dettagli edit_resourcee amici su https://coderanger.net/rewind/

Con i libri di cucina basati su risorse personalizzate anziché su ricette, le cose possono diventare più complesse, ma i dettagli dipendono molto da come viene scritto esattamente il libro di cucina che stai estendendo.


Questo è il modello che seguiamo e di solito funziona fino a quando il ritocco del ricettario della comunità non è diventato troppo duro ed è più semplice riscriverlo da zero.
Travis Thompson

Grande! Non sapevano nemmeno di aver cambiato la vecchia cosa di riavvolgimento buggy in qualcosa che fa parte dello Chef.
Evgeny

Mi dispiace chiedere, ma il tuo nome utente è anche incluso nel link che hai citato ... Il che mi fa chiedere se hai qualche affiliazione con quel link. In tal caso, hai familiarità con le politiche di SE sull'inclusione di un'adeguata "divulgazione" al riguardo (da includere anche nella tua risposta)?
Pierre.Vriens

1
@ Pierre.Vriens nel contesto del mondo dello Chef, il mio blog è all'incirca equivalente ai documenti ufficiali. Controlla la mia cronologia su SO se vuoi la conferma :)
coderanger

(in questo caso non mi
collego
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.