public
Description: StripAttributes is a Rails plugin that automatically strips all ActiveRecord model attributes of leading and trailing whitespace before validation. If the attribute is blank, it strips the value to nil.
Homepage: http://stripattributes.rubyforge.org/
Clone URL: git://github.com/rmm5t/strip_attributes.git
Click here to lend your support to: strip_attributes and make a donation at www.pledgie.com !
name age message
file .gitignore Sat May 10 18:51:09 -0700 2008 .gitignore [rmm5t]
file README.rdoc Fri Jun 27 11:09:41 -0700 2008 README renamed to README.rdoc [rmm5t]
file Rakefile Sat Feb 28 15:02:29 -0800 2009 --inline-source is no longer an option in rdoc ... [rmm5t]
file init.rb Sat Sep 22 20:18:31 -0700 2007 initial checkin git-svn-id: http://stripattrib... [rmm5t]
directory lib/ Thu Apr 16 14:30:08 -0700 2009 Added tests for solely whitespace filled strings [ebryn]
directory shoulda_macros/ Sun Jul 26 21:16:18 -0700 2009 Fixed macros for latest versions of shoulda [rmm5t]
directory test/ Thu Apr 16 14:33:47 -0700 2009 Added optional redgreen support [rmm5t]
README.rdoc

StripAttributes

StripAttributes is a Rails plugin that automatically strips all ActiveRecord model attributes of leading and trailing whitespace before validation. If the attribute is blank, it strips the value to nil.

It works by adding a before_validation hook to the record. By default, all attributes are stripped of whitespace, but :only and :except options can be used to limit which attributes are stripped. Both options accept a single attribute (:only => :field) or arrays of attributes (:except => [:field1, :field2, :field3]).

Examples

  class DrunkPokerPlayer < ActiveRecord::Base
    strip_attributes!
  end

  class SoberPokerPlayer < ActiveRecord::Base
    strip_attributes! :except => :boxers
  end

  class ConservativePokerPlayer < ActiveRecord::Base
    strip_attributes! :only => [:shoe, :sock, :glove]
  end

Installation

Option 1. Use the standard Rails plugin install (assuming Rails 2.1).

  ./script/plugin install git://github.com/rmm5t/strip_attributes.git

Option 2. Use git submodules

  git submodule add git://github.com/rmm5t/strip_attributes.git vendor/plugins/strip_attributes

Option 3. Use braid (assuming you’re using git)

  braid add --rails_plugin git://github.com/rmm5t/strip_attributes.git
  git merge braid/track

Other

If you want to use this outside of Rails, extend StripAttributes in your ActiveRecord model after putting strip_attributes in your $LOAD_PATH:

  require 'strip_attributes'
  class SomeModel < ActiveRecord::Base
    extend StripAttributes
    strip_attributes!
  end

Support

The StripAttributes homepage is stripattributes.rubyforge.org. You can find the StripAttributes RubyForge progject page at: rubyforge.org/projects/stripattributes

StripAttributes source is hosted on GitHub: github.com/rmm5t/strip_attributes

Feel free to submit suggestions or feature requests. If you send a patch, remember to update the corresponding unit tests. In fact, I prefer new features to be submitted in the form of new unit tests.

Credits

The idea was triggered by the information at wiki.rubyonrails.org/rails/pages/HowToStripWhitespaceFromModelFields but was modified from the original to include more idiomatic ruby and rails support.

License

Copyright © 2007-2008 Ryan McGeary released under the MIT license en.wikipedia.org/wiki/MIT_License