shoulda_machinist_generator

We have been loving shoulda and machinist, so we thought it would be a good idea to be able to generate scaffold code which used our conventions. Looking around, we found the shoulda_generator and shamelessly copied it into a new gem, then brutally switched its unfixture usage from Factory Girl to Machinist.

It’s used in basically the same way as shoulda_generator, i.e.:

script/generate shoulda_machinist_scaffold post # no attributes, view will be anemic
script/generate shoulda_machinist_scaffold post title:string body:text published:boolean
script/generate shoulda_machinist_scaffold purchase order_id:integer amount:decimal

In the interest of simplicity, there is no option to use haml (only erb templates are included). It’d be nice to support alternate template types, so if anyone wants to fork the gem we would happily say yes to any pull requests slapping this functionality in.

We’ve also added an admin system generator, which you can use like so:

script/generate shoulda_machinist_admin_scaffold post title:string body:text

This will barf out the following:

  • the model, its blueprint, and associated unit test

  • an admin controller, with all 7 “normal” restful Rails actions, properly namespaced and with correct url_for values for the namespace, with functional tests

  • a front-end controller, with 2 actions (“index” and “show”), with functional tests

Installation

gem install shoulda_machinist_generator

Enjoy!

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (If you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2009 Dave Hrycyszyn, Dan Garland, Stuart Chinery. See LICENSE for details.