aboutsummaryrefslogtreecommitdiffstats
path: root/lib/strip_attributes/README.rdoc
blob: bd55c0c1c3bf7716cc7daf93fb1b528e03275d6f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
== 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 <tt>:only</tt> and <tt>:except</tt>
options can be used to limit which attributes are stripped.  Both options accept
a single attribute (<tt>:only => :field</tt>) or arrays of attributes (<tt>:except =>
[:field1, :field2, :field3]</tt>).

=== 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[http://github.com/evilchelu/braid/tree/master] (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 <tt>$LOAD_PATH</tt>:

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

=== Support

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

StripAttributes source is hosted on GitHub[http://github.com/]:
http://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
http://wiki.rubyonrails.org/rails/pages/HowToStripWhitespaceFromModelFields
but was modified from the original to include more idiomatic ruby and rails
support.

=== License

Copyright (c) 2007-2008 Ryan McGeary released under the MIT license
http://en.wikipedia.org/wiki/MIT_License