2013-08-31 12 views
8

La documentazione di roxygen2 con devtools document genera automaticamente un campo Collate: nel pacchetto DESCRIZIONE, indipendentemente dal fatto che sia necessario caricare i file della libreria di pacchetti in un ordine particolare.Come si indica l'ordine di fascicolazione in Roxygen2?

Sto lavorando su un pacchetto con un sacco di metodi S4 e voglio essere sicuro che le definizioni di classe siano caricate prima di qualsiasi metodo o altra classe che le usa, che capisco di poter fare con l'elenco Collate, ma io ' Non sono sicuro di come indicarlo nel formato della documentazione di roxygen2.

Il roxygen2 manual fa riferimento a un tag @include ma sembra che in realtà potrebbe includere solo il codice nella documentazione, ad esempio, per aggiungere esempi esterni tramite un flag @examples. Può essere usato per specificare l'ordine di fascicolazione per i metodi?

+0

Se la fascicolazione il campo è già nella DESCRIZIONE roxygen2 non lo genera. Quindi direi che devi fare l'ordine che desideri e che dovrebbe essere rispettato. (Penso, quindi il commento rispetto a una risposta). –

+0

sarebbe bello sapere se l'interpretazione di @import è corretta. Sarebbe anche bello avere una funzione che calcoli l'ordine di fascicolazione da un elenco di dipendenze di file piuttosto che doverlo elaborare manualmente. L'importazione – cboettig

+0

viene utilizzata per importare un pacchetto. Questo è simile all'elencare un pacchetto nella sezione Depends, tranne per il fatto che è molto più pulito perché non inquina lo spazio dei nomi dell'utente. – Dason

risposta

13

Il tag include viene utilizzato per indicare che un file ha bisogno di un altro per funzionare. (Il nome include potrebbe non essere stata la scelta migliore, ma tale è la vita). Se vuoi assicurarti che il file B sia caricato prima del file A, assicurati di avere @include B in A. Roxygen si occuperà di ordinare il campo di confronto per soddisfare le tue restrizioni.

+0

geniale, quindi include fa proprio quello di cui ho bisogno! – cboettig

3

ho appena capito che se si aggiunge la dichiarazione @include nella parte superiore del file R, essa possa interferire con il successivo blocco di documentazione roxygen2 a meno che non lo si segue con un NULL per esempio

#' @include something.R 
NULL 

#' Documenting a function 
#' 
#" It does something... 
#' 
#' @param ... 
#' 
Problemi correlati