sixarm_ruby_email_address_validation 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/CHANGELOG.txt +1 -1
- data/README.rdoc +27 -11
- data/VERSION +1 -1
- data/lib/sixarm_ruby_email_address_validation.rb +1 -1
- data/test/sixarm_ruby_email_address_validation_test.rb +8 -8
- metadata +3 -3
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG.txt
CHANGED
data/README.rdoc
CHANGED
@@ -1,36 +1,40 @@
|
|
1
|
+
= SixArm.com » Ruby » Email address validation using RFC 822 pattern matching
|
1
2
|
|
2
|
-
|
3
|
+
Author:: Joel Parker Henderson, joel@joelparkerhenderson.com
|
4
|
+
Copyright:: Copyright (c) 2006-2011 Joel Parker Henderson
|
5
|
+
License:: See LICENSE.txt file
|
3
6
|
|
4
|
-
|
5
|
-
Copyright:: Copyright (c) 2006-2010 Joel Parker Henderson
|
6
|
-
License:: CreativeCommons License, Non-commercial Share Alike
|
7
|
-
License:: LGPL, GNU Lesser General Public License
|
8
|
-
|
9
|
-
Email address regex, to validate an email address using RFC 822.
|
7
|
+
Email address regular expression to validate an email address using RFC 822.
|
10
8
|
|
11
9
|
This is a gem wrapper around http://tfletcher.com/lib/rfc822.rb
|
12
10
|
|
13
11
|
Example:
|
14
|
-
if
|
12
|
+
if EMAIL_ADDRESS_INNER_PATTERN=~'foo@bar.com'
|
15
13
|
puts "found"
|
16
14
|
else
|
17
15
|
puts "not found"
|
18
16
|
end
|
19
17
|
=> found
|
20
18
|
|
19
|
+
|
20
|
+
== Pattern Match
|
21
|
+
|
21
22
|
To find an email address in a string, do the pattern match
|
22
23
|
then use the result, which is the match's string position:
|
23
24
|
|
24
25
|
Example of match position:
|
25
|
-
match_position =
|
26
|
+
match_position = EMAIL_ADDRESS_INNER_PATTERN=~'foo@bar.com'
|
26
27
|
=> 0
|
27
28
|
|
28
|
-
match_position =
|
29
|
+
match_position = EMAIL_ADDRESS_INNER_PATTERN=~'... foo@bar.com ...'
|
29
30
|
=> 4
|
30
31
|
|
31
|
-
match_position =
|
32
|
+
match_position = EMAIL_ADDRESS_INNER_PATTERN=~'... hello world ...'
|
32
33
|
=> nil
|
33
34
|
|
35
|
+
|
36
|
+
== Exact Pattern Match
|
37
|
+
|
34
38
|
To do an exact pattern match, use the EMAIL_ADDRESS_EXACT_PATTERN.
|
35
39
|
This matches the entire string from start to end; in other words,
|
36
40
|
the entire string must be one email address.
|
@@ -57,3 +61,15 @@ Example to validate an email address:
|
|
57
61
|
EMAIL_ADDRESS_EXACT_PATTERN=~email_address ? true : false
|
58
62
|
end
|
59
63
|
|
64
|
+
|
65
|
+
== Rails Validation
|
66
|
+
|
67
|
+
To add email address validation to a typical Ruby On Rails model:
|
68
|
+
|
69
|
+
class User
|
70
|
+
include EmailAddressValidation
|
71
|
+
validates :email_address, :format => { :with => EMAIL_ADDRESS_EXACT_PATTERN },
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.4
|
@@ -18,7 +18,7 @@ module EmailAddressValidation
|
|
18
18
|
EMAIL_ADDRESS_DOMAIN = "#{EMAIL_ADDRESS_SUB_DOMAIN}(?:\\x2e#{EMAIL_ADDRESS_SUB_DOMAIN})*"
|
19
19
|
EMAIL_ADDRESS_LOCAL_PART = "#{EMAIL_ADDRESS_WORD}(?:\\x2e#{EMAIL_ADDRESS_WORD})*"
|
20
20
|
EMAIL_ADDRESS_SPEC = "#{EMAIL_ADDRESS_LOCAL_PART}\\x40#{EMAIL_ADDRESS_DOMAIN}"
|
21
|
-
|
21
|
+
EMAIL_ADDRESS_INNER_PATTERN = Regexp.new "#{EMAIL_ADDRESS_SPEC}", nil, 'n'
|
22
22
|
EMAIL_ADDRESS_EXACT_PATTERN = Regexp.new "\\A#{EMAIL_ADDRESS_SPEC}\\z", nil, 'n'
|
23
23
|
|
24
24
|
end
|
@@ -8,20 +8,20 @@ class Testing < Test::Unit::TestCase
|
|
8
8
|
|
9
9
|
include EmailAddressValidation
|
10
10
|
|
11
|
-
def
|
12
|
-
assert_equal(0,
|
11
|
+
def test_inner_pattern_success
|
12
|
+
assert_equal(0,EMAIL_ADDRESS_INNER_PATTERN=~'foo@bar.com')
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
16
|
-
assert_equal(nil,
|
15
|
+
def test_inner_pattern_failure
|
16
|
+
assert_equal(nil,EMAIL_ADDRESS_INNER_PATTERN=~'foo')
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
20
|
-
assert_equal(4,
|
19
|
+
def test_inner_pattern_chaff_success
|
20
|
+
assert_equal(4,EMAIL_ADDRESS_INNER_PATTERN=~'... foo@bar.com ...')
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
24
|
-
assert_equal(nil,
|
23
|
+
def test_inner_pattern_chaff_failure
|
24
|
+
assert_equal(nil,EMAIL_ADDRESS_INNER_PATTERN=~'... foo ...')
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_exact_pattern_success
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: sixarm_ruby_email_address_validation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.2.
|
5
|
+
version: 1.2.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- SixArm
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
eabwpCbAopo=
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2011-
|
33
|
+
date: 2011-07-08 00:00:00 -07:00
|
34
34
|
default_executable:
|
35
35
|
dependencies: []
|
36
36
|
|
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
76
|
requirements: []
|
77
77
|
|
78
78
|
rubyforge_project:
|
79
|
-
rubygems_version: 1.
|
79
|
+
rubygems_version: 1.3.9.2
|
80
80
|
signing_key:
|
81
81
|
specification_version: 3
|
82
82
|
summary: "SixArm \xC2\xBB Ruby \xC2\xBB Email address validation using RFC 822 pattern match regex regular expressions"
|
metadata.gz.sig
CHANGED
Binary file
|