Files | Admin

Notes:

Release Name: 0.4

Notes:
Hammock is a Rails plugin that eliminates redundant code in a very RESTful manner. It does this in lots in lots of different places, but in one manner: it encourages specification in place of implementation.


Hammock enforces RESTful resource access by abstracting actions away from the controller in favour of a clean, model-like callback system.

Hammock tackles the hard and soft sides of security at once with a scoping security system on your models. Specify who can verb what resources under what conditions once, and everything else - the actual security, link generation, index filtering - just happens.

Hammock inspects your routes and resources to generate a routing tree for each resource. Parent resources in a nested route are handled transparently at every point - record retrieval, creation, and linking.

It makes more sense when you see how it works though. There's a screencast coming soon.


Changes: == 0.4 2009-10-05 Fix #link_class_for to handle multiple entities. Use SELECT DISTINCT in #suggest to eliminate duplicates caused by JOINs. Add opts[:limit] and opts[:order] to #suggest. In String@normalize_for_display, convert ð to d instead of o. Rename String#normalize to #normalize_for_display, and add #normalize, which doesn't process æ etc. Added explicit conversions for æ and ð to String#normalize. Added String#normalize. In Array#hash_by, treat :self as a special case. Messy: include utils.rb before others, since it needs to be available at require time for model_logging.rb. Namespace col names in AR::Base#suggest with table_name, to stop cols from JOINs trampling on cols we want. In jquery_xhr's html response_action, don't attempt replacement when the target obj wasn't assigned. In #status_callback, jQuerify the response directly instead of trying to look it up in the DOM. Added JSON responder to #suggest, along side the existing HTML one. Updated #can_verb_*? methods to accept any number of entities. Updated #ajax_button, #ajax_link and #ajaxinate to accept entity arrays instead of single records. Updated ActiveRecord::Base.suggest to rank results by position in each field of earliest query word occurrence, in supplied field order. Added AR::Base#without_timestamps. Changed default sort order to updated_at descending. Added after_find callback.