Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A skeleton for the Monk glue code tool. Marrow is a meld of existing skeletons, but with MongoDB support, and testing with Shoulda and Cucumber.
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app
bin
config
features
lib
public
spec
templates
vendor
.gitignore
.gitmodules
README.rdoc
Rakefile
Thorfile
config.ru
dependencies
init.rb

README.rdoc

Project

Skeleton

Based on Toby Joe Boudreaux's lazybones skeleton (github.com/tobyjoe/lazybones) and R. Konstantin Haase's gerippe skeleton (github.com/rkh/gerippe) This skeleton uses the following libraries:

  • Compass for fast layout development

  • Rspec & Rack::Test for testing

  • Cucumber for stories

  • Extlib for sane ruby extensions

  • MongoMapper for ORM (see mongodb.org)

  • json

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)

Usage

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.

Stand-alone usage

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:

rake vendor:install:submodules

Or globally as gems:

rake vendor:install:gems

There after you'll be able to create routes and such:

bin/example_project create route pages page/:name

Monk usage

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 usage

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”

TODO

  • Get better specs working.

Something went wrong with that request. Please try again.