rfc822 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README.rdoc +65 -0
  2. data/lib/rfc822.rb +27 -2
  3. metadata +14 -12
@@ -0,0 +1,65 @@
1
+ = Introduction
2
+
3
+ This is a simple gem for Ruby that simplifies validating email addresses. It conforms with RFC2822.
4
+
5
+ Here comes a quick code sample. Currently no docs.
6
+
7
+ require 'rfc822'
8
+
9
+ # To test if whole string is an email... ugly way
10
+ # (returns 0 on success, nil on failure):
11
+
12
+ "tom@example.com" =~ RFC822::EMAIL_REGEXP_WHOLE
13
+
14
+ # or nice one (returns true/false):
15
+
16
+ "tom@example.com".is_email?
17
+
18
+
19
+
20
+ # To test if string contains an email... ugly way
21
+ # (returns 0 on success, nil on failure):
22
+
23
+ "demo john@example.comFooBar" =~ RFC822::EMAIL_REGEXP_PART
24
+
25
+ # or nice one (returns true/false):
26
+
27
+ "demo john@example.comFooBar".contains_email?
28
+
29
+
30
+
31
+ # To scan for emails within a string... ugly way
32
+ # (returns an array):
33
+
34
+ "something a@example.com xyz".scan(RFC822::EMAIL_REGEXP_PART)
35
+
36
+ # or nice one (also returns an array):
37
+
38
+ "something a@example.com xyz".scan_for_emails
39
+
40
+
41
+
42
+
43
+ = Installation
44
+
45
+ === Ruby Versions
46
+
47
+ Code was tested with ruby-1.8.7-p334 [ i386 ] and ruby-1.9.2-p180 [ i386 ] under RVM.
48
+
49
+ === Gems
50
+
51
+ The gems are hosted at Rubygems.org[http://rubygems.org]. Make sure you're
52
+ using the latest version of rubygems:
53
+
54
+ $ gem update --system
55
+
56
+ Then you can install the jack-ffi gem as follows:
57
+
58
+ $ gem install rfc822
59
+
60
+ === From the GitHub source
61
+
62
+ The source code is available at http://github.com/saepia/rfc822.
63
+ You can either clone the git repository or download a tarball or zip file.
64
+ Once you have the source, you can unpack it and use from wherever you downloaded.
65
+
@@ -13,7 +13,32 @@ module RFC822
13
13
  LOCAL_PART = "#{WORD}(?:\\x2e#{WORD})*"
14
14
  ADDR_SPEC = "#{LOCAL_PART}\\x40#{DOMAIN}"
15
15
 
16
- EMAIL_REGEXP_WHOLE = /\A#{ADDR_SPEC}\z/
17
- EMAIL_REGEXP_PART = /#{ADDR_SPEC}/
16
+ EMAIL_REGEXP_WHOLE = Regexp.new("^#{ADDR_SPEC}$", nil, 'n')
17
+ EMAIL_REGEXP_PART = Regexp.new("#{ADDR_SPEC}", nil, 'n')
18
18
  end
19
19
 
20
+ class String
21
+ def is_email?
22
+ if RUBY_VERSION >= "1.9"
23
+ (self.force_encoding("BINARY") =~ RFC822::EMAIL_REGEXP_WHOLE) != nil
24
+ else
25
+ (self =~ RFC822::EMAIL_REGEXP_WHOLE) != nil
26
+ end
27
+ end
28
+
29
+ def contains_email?
30
+ if RUBY_VERSION >= "1.9"
31
+ (self.force_encoding("BINARY") =~ RFC822::EMAIL_REGEXP_PART) != nil
32
+ else
33
+ (self =~ RFC822::EMAIL_REGEXP_PART) != nil
34
+ end
35
+ end
36
+
37
+ def scan_for_emails
38
+ if RUBY_VERSION >= "1.9"
39
+ self.force_encoding("BINARY").scan(RFC822::EMAIL_REGEXP_PART)
40
+ else
41
+ self.scan(RFC822::EMAIL_REGEXP_PART)
42
+ end
43
+ end
44
+ end
metadata CHANGED
@@ -2,12 +2,12 @@
2
2
  name: rfc822
3
3
  version: !ruby/object:Gem::Version
4
4
  hash: 27
5
- prerelease: false
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 2
10
- version: 0.0.2
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marcin Lewandowski
@@ -15,27 +15,29 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-23 00:00:00 +02:00
18
+ date: 2011-11-21 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
22
22
  description: Gem containing just e-mail validation regexp based on RFC822, please use RFC822::EMAIL_REGEXP_WHOLE for checking if whole string is an valid email, and RFC822::EMAIL_REGEXP_PART for e.g. scanning a string for e-mail address extraction.
23
- email: saepia@saepia.net
23
+ email:
24
+ - edek123456@gmail.com
24
25
  executables: []
25
26
 
26
27
  extensions: []
27
28
 
28
- extra_rdoc_files: []
29
-
29
+ extra_rdoc_files:
30
+ - README.rdoc
30
31
  files:
31
32
  - lib/rfc822.rb
33
+ - README.rdoc
32
34
  has_rdoc: true
33
- homepage: http://saepia.net
35
+ homepage: http://github.com/saepia/rfc822
34
36
  licenses: []
35
37
 
36
38
  post_install_message:
37
- rdoc_options:
38
- - --charset=UTF-8
39
+ rdoc_options: []
40
+
39
41
  require_paths:
40
42
  - lib
41
43
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -59,9 +61,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
61
  requirements: []
60
62
 
61
63
  rubyforge_project:
62
- rubygems_version: 1.3.7
64
+ rubygems_version: 1.6.2
63
65
  signing_key:
64
66
  specification_version: 3
65
- summary: Gem containing just e-mail validation regexp based on RFC
67
+ summary: Gem containing just e-mail validation regexp based on RFC822, please use RFC822::EMAIL_REGEXP_WHOLE for checking if whole string is an valid email, and RFC822::EMAIL_REGEXP_PART for e.g. scanning a string for e-mail address extraction.
66
68
  test_files: []
67
69