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
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
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
more. Where should I put those?
Would it make sense to create a directory for each of these things at
project-root level, or to do so for some subset of them? Should they be
stuck in special directories that are subdirectories of other
that already exist (such as “lib”, where extension might be in “lib/mod”