Rails scaffold generator that outputs HAML and better functional tests.
Pull request Compare This branch is 3 commits behind norman:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
generators/haml_scaffold
lib/haml_scaffold
samples
.gitignore
History.txt
MIT-LICENSE
Manifest.txt
README.rdoc
Rakefile
haml_scaffold.gemspec
init.rb

README.rdoc

Haml Scaffold

A collection of hacks to the Rails scaffold generator, to make it output templates using Haml rather than ERB. You may like some of it, and may hate other parts. You're free to use it under the terms of the MIT license if the parts you like outweigh the parts you hate.

This scaffold generator does the same thing as the default Rails scaffold generator, with a few differences.

Differences from Rails Scaffolding:

  • Haml not ERB.

Controller

  • Loads object with a before_filter to be DRYer.

  • “Destroy” method handles error conditions.

  • Actions are alphabetized for more obvious consistency.

  • Uses will_paginate.

Controller Test

  • Tests error conditions, not just the “happy-path.”

  • Has 100% code coverage with RCov.

  • Simplifies test method names and alphabetizes them for more obvious consistency.

  • Uses some very simple mocking with mocha to limit calls to the DB.

Views

  • Have cleaner, more semantic XHTML.

  • Are broken up into a couple of partials to be DRYer.

  • Use will_paginate.

Misc

  • Doesn't generate a layout or CSS file.

Samples

View them here.

Installation

HAML Scaffold is available on RubyForge as a gem:

sudo gem install haml_scaffold

You can also install it as a Rails plugin if you wish:

./script/plugin install git://github.com/norman/haml-scaffold.git

Dependencies

The generated code will depend on:

You'll need to add the gems and/or requires to your config/environment.rb manually.

Other stuff you might be interested in:

Author

Norman Clarke

This work is derived from code in Ruby on Rails and is released under its same license, the MIT License.