Dear List, consider the following scenario:
setClass(Class = "A", representation = representation(B = "B", C = "C")) setClass(Class = "B", representation = representation(C = "C")) setClass(Class = "C", representation = representation(something = "character")) Obviously, the collation for sourcing these defs needs to be: C, B, A. Which doesn't correspond to the default collation of R (alphabetically). I've tried to pick up on how to ensure the right collation when building R Packages by reading some previous posts and as far as I understand I've basically got two options here: 1) Put all class defs in one script, e.g. allClasses.R. 2) Manually specify the collation via the "Collate" field in the DESCRIPTION file. I'm used to organizing my classes, generics, methods etc. on a "one-per-script" basis in various subdirectories (e.g. R/classes, R/methods etc.) and try automate manual steps wherever possible (not sure if that's the way most of you guys code, but it definitely helped me stay on top of things). But this doesn't really go well with my two options above, does it? ;-) So I thought about setting up a routine that - investigates the source code of all classes (via parsing and looking into the "representation" argument) - finds out the valid collation by itself based on all classes that it found in the representation argument of the respective class defs - and then writes all the class defs to one R script, e.g. allClasses.R, so I can bundle all my code in an R Package without worrying about the collation. This way I could stick to my old habits while automating the process of building a package a bit ;-) Now, I managed to get this done for "simple" class defs like the ones above but haven't looked into more complex class defs (e.g. including "contains" etc.) yet. Has anyone tried and succeeded in doing something similar or are all of you into the "one-script-contains-all" paradigm? If anyone is interested, I'd be glad to share code. Likewise I'd be interested in hearing about other "best practices" in this respect. Best regards, Janko ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel