0.0
No commit activity in last 3 years
No release in over 3 years
Rails validation gem which ensures no contact information can be passed through a field. Contact information is twitter handles, email addresses, and phone numbers.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0

Runtime

 Project Readme

Cold Shoulder

Rails validation gem which ensures no contact information can be passed into a field. Looks for Twitter handles, email addresses, and phone numbers

Rails 4:

gem 'cold_shoulder'

Rails 3: Same as above, it should work with major versions of Rails 3, nothing too crazy going on in here.

Usage Example

class Message < ActiveRecord::Base
  validates :body, cold_shoulder: true
end

Validation Options

class Message < ActiveRecord::Base
  validates :body, cold_shoulder: {
    ignore_twitter: true, # Don't add errors when twitter handles are detected
    ignore_email: true,   # Don't add errors email addresses are detected
    ignore_phone: true,   # Don't add errors when phones are detected
    ignore_link: true,    # Don't add errors when links are detected
    remove_links: true,   # Strip any found links from the actual saved value, setting to true will ignore links
    ignore_number_words: true # Don't count 'zero, one, two' as '0, 1, 2' etc this is used to catch phone numbers as words
    message: 'Use this to override all the specific messages'
  }
end

What can it catch?

Here are some examples, straight out of the Rspec tests!

Email addresses

dustin.hoffman@breefield.com
dustin.hoffman at breefield.com
dustin.hoffman [ a t ] breefield.com

Phone numbers

208 871 2069
(208)8712069
+1 (208)871-2069
2 0 8 8 7 1 2 0 6 9
2\n0\n8\n8\n7 lol Rob Ford \n1\n2\n0\n6\n9
two oh eight 8 7 one 2 oh six 9
two zero eight eight seven one two oh six nine

It won't missfire and catch:

$1,000,000,000

Twitter handles

@valid_username

Override validation messages

In config/locals/en.yml

en:
  errors:
    messages:
      contains_twitter: "contains the twitter handle: %{handles}"
      contains_phone: "contains the phone number: %{phone_numbers}"
      contains_email: "contains the email address: %{email_addresses}"
      contains_link: "contains the link: %{detected}"

Contributing

  1. Fork the project
  2. Make your feature addition or bug fix
  3. Add tests for it. This is important so I don't break it in a future version unintentionally.
  • cold_shoulder uses rspec, all tests are in spec/cold_shoulder_spec.rb
  1. 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)
  2. Send us a pull request