Introduction¶ ↑
This is a simple gem for Ruby that simplifies validating email addresses. It conforms with RFC2822.
Here comes a quick code sample. Currently no docs.
require 'rfc822' # To test if whole string is an email... ugly way # (returns 0 on success, nil on failure): "tom@example.com".dup.force_encoding("BINARY") =~ RFC822::EMAIL_REGEXP_WHOLE # or nice one (returns true/false): "tom@example.com".is_email? # To test if string contains an email... ugly way # (returns 0 on success, nil on failure): "demo john@example.comFooBar".dup.force_encoding("BINARY") =~ RFC822::EMAIL_REGEXP_PART # or nice one (returns true/false): "demo john@example.comFooBar".contains_email? # To scan for emails within a string... ugly way # (returns an array): "something a@example.com xyz".dup.force_encoding("BINARY").scan(RFC822::EMAIL_REGEXP_PART) # or nice one (also returns an array): "something a@example.com xyz".scan_for_emails
If you omit ‘.dup.force_encoding(“BINARY”)` part, you can run into exceptions if someone passes non-ASCII email (see github.com/mspanc/rfc822/issues/3).
Installation¶ ↑
Ruby Versions¶ ↑
Code was tested with ruby-1.8.7-p334 [ i386 ] and ruby-1.9.2-p180 [ i386 ] under RVM.
Gems¶ ↑
The gems are hosted at Rubygems.org. Make sure you’re using the latest version of rubygems:
$ gem update --system
Then you can install the gem as follows:
$ gem install rfc822
Bundler¶ ↑
Add to your Gemfile:
gem "rfc822"
and then type:
bundle install
From the GitHub source¶ ↑
The source code is available at github.com/saepia/rfc822. You can either clone the git repository or download a tarball or zip file. Once you have the source, you can unpack it and use from wherever you downloaded.
ChangeLog¶ ↑
0.1.5¶ ↑
-
Fixed bug that caused to change encoding of string passed to the methods (thanks to Artur Trzop)
0.1.4¶ ↑
-
Fixed regression introduced in 0.1.3 that caused EMAIL_REGEXP_WHOLE to stop working properly.
0.1.3 (yanked)¶ ↑
-
- security
-
Updated regular expressions to use A and z instead of ^ and $ operators.
0.1.2¶ ↑
-
Updated license
0.1.1¶ ↑
-
Fixed description in the gem description
0.1.0¶ ↑
-
Added compatibility with Ruby 1.9
-
Added String#is_email?, String#contains_email? and String#scan_for_emails methods
0.0.2¶ ↑
-
Initial release
License¶ ↑
MIT