From: Chad Perrin Date: 2012-01-05T08:42:34+09:00 Subject: organizing a complex gem I need to organize a project into a gem, and would like some ideas about the best way to do so. Obviously, the main library file will go in "lib", and any files that are necessarily loaded by it as its own library files should go in a subdirectory of "lib". Just as obviously, the executable front-end utility should be stuck in "bin". Tests will be in "test". Where should I put a config file? Where should I put a set of optional modules that serve as extensions, where the user of the project can use the config file to specify extensions to load -- or none at all, if preferred? It uses some data files as a modular "database", each file serving as a plain text hierarchical database of its own. One such file is currently part of the project; it is expected that a user will end up adding dozens more. Where should I put those? Would it make sense to create a directory for each of these things at the project-root level, or to do so for some subset of them? Should they be stuck in special directories that are subdirectories of other directories that already exist (such as "lib", where extension might be in "lib/mod" or "lib/ext")? -- Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]