Compass for fast layout development
Rspec & Rack::Test for testing
Cucumber for stories
Extlib for sane ruby extensions
MongoMapper for ORM (see mongodb.org)
Alternate directory structure
The usual app/ structure known from Rails, Merb or other Monk skeletons except Models should be stored in the lib/project/ path:
for controllers/routes: app/routes/ for helpers: app/helpers for views: app/views/ for models: lib/project/
Models should be written in a way to be reusable and viewed as a stand-alone library (hence them being in lib)
This skeleton can be used with monk, priest or as stand-alone. It does not depend in any way on monk, but does use a modified monk-glue (github.com/squarelover/glue) project that is linked in the dependencies. It is recommended that you vendorize it into your project.
Run this to create a new project called example_project:
git clone git://github.com/squarelover/marrow.git example_path cd example_path bin/project rename example_project
If you have dependency issues, you can install those either as git submodules:
Or globally as gems:
There after you'll be able to create routes and such:
bin/example_project create route pages page/:name
monk add marrow git://github.com/squarelover/marrow.git monk init example_path -s marrow cd example_path dep vendor --all monk create route pages page/:name
Priest is an extended monk version (github.com/rkh/priest).
priest add marrow git://github.com/squarelover/marrow.git priest init example_path -s marrow --keep-remote cd example_path rake vendor:install:submodules priest create route pages page/:name
Note: You can also add –keep-remote to the “priest add” line, so it will be default option for every “priest init” of marrow. However, this will cause the marrow skeleton entry to be unusable from the original monk command line tool, as monk and priest share the same config file. Future versions of monk will be able to cope with priest's extended config entries. If you just use priest this should not cause any problems.
Note: “monk” can be replaced with “priest” or “bin/PROJECT_NAME”
Get better specs working.