mailgun_email_validator 0.0.1 → 0.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c94647169b8b8b838a54f6500d51ec911dc1663b
4
- data.tar.gz: 77cc1bd9cff8538baa022226e6b5d61af906e4a3
3
+ metadata.gz: 923257bd247cdbb07d13deb99735b0a996ff995f
4
+ data.tar.gz: 6a838807bde81bdd7f514ede2b73f8bb7b083234
5
5
  SHA512:
6
- metadata.gz: 31e8d500a4f3b12045fac399b1f88a3af613d3da561cc947306fd26e9d6596909963b1e5fa35e3b002588411bea7bf6b13f6203d0ecb1ebbe4efb1924e434387
7
- data.tar.gz: 9a39cdab91bd17841504851620406ef202944ba85069bf0b3541eec2afbf45190802ed5b30558f9b797b58a07305feca9cdd4f8f4573a5a5833e65a5c20c623e
6
+ metadata.gz: c10f09d58c9751243f37c18035964cdb81a79a2a6e9e5f02466ec3ba0ef24577592552ea6c8488ef672d93f36f122231a4fedf2846fe2186aa605ccca8d92146
7
+ data.tar.gz: 2184b04d3dd3d945ea47a2855673dc6b2c16750ddfa2c64cc9fc754511b1b7a9db10921910a28c41702f5ae2e885579c3e6af1f345269c7855b179278aa7d321
data/README.md CHANGED
@@ -12,6 +12,12 @@ You'll need to add a ``MAILGUN_PUBLIC_KEY`` environmental variable to your syste
12
12
 
13
13
  ``export MAILGUN_PUBLIC_KEY='f23oifj3ojo2j3ofj32ijoj2iojf3iojoi2f32'``
14
14
 
15
+ Alternatively, you can configure mailgun with an initializer:
16
+
17
+ In ``config/initializers/mailgun_email_validator.rb``:
18
+
19
+ ``MailgunEmailValidator::MAILGUN_PUBLIC_KEY = 'f23oifj3ojo2j3ofj32ijoj2iojf3iojoi2f32'``
20
+
15
21
  *Note: This is not a real Mailgun public key*
16
22
 
17
23
 
@@ -21,6 +27,10 @@ To use mailgun_email_validator inside your models:
21
27
 
22
28
  You can also specify many of the usual ActiveRecord validation options including ``:on``, ``:allow_nil``, ``:allow_blank``, and ``:message``.
23
29
 
30
+
31
+ There is also a helper method available on all models:
32
+
33
+ ``MyModel#valid_email_with_mailgun?(email) => true/false``
24
34
  ## Contributing to mailgun_email_validator
25
35
 
26
36
  Pull requests welcome.
@@ -36,4 +46,5 @@ Pull requests welcome.
36
46
 
37
47
  ## Credits
38
48
 
39
- * Zach Feldman [@zachfeldman](http://zfeldman.com)
49
+ * Zach Feldman [@zachfeldman](http://zfeldman.com)
50
+ * Matt Walters [@mattwalters](https://github.com/mattwalters) (Added helper method, ability to config with an initializer.)
@@ -2,7 +2,13 @@ require 'rest_client'
2
2
 
3
3
  module MailgunEmailValidator
4
4
  DEFAULT_VALIDATION_OPTIONS = {:on => :save, :allow_nil => false, :allow_blank => false, :message => nil}
5
-
5
+
6
+ MAILGUN_PUBLIC_KEY = nil
7
+
8
+ def valid_email_with_mailgun?(email)
9
+ !! parsed_validation_response!(email)["is_valid"]
10
+ end
11
+
6
12
  def validation_method(on)
7
13
  case on
8
14
  when :save then :validate
@@ -22,8 +28,7 @@ module MailgunEmailValidator
22
28
  return if record.blank?
23
29
  else
24
30
  begin
25
- res = RestClient.get "https://api:#{ENV['MAILGUN_PUBLIC_KEY']}@api.mailgun.net/v2/address/validate", {params: {address: value}}
26
- parsed = JSON.parse(res)
31
+ parsed = parsed_validation_response!(value)
27
32
  is_valid = !parsed["is_valid"].nil? ? parsed["is_valid"] : false
28
33
  message = options[:message] ? options[:message] : "supplied email is invalid."
29
34
  record.errors.add(attr, message) if !is_valid
@@ -33,4 +38,14 @@ module MailgunEmailValidator
33
38
  end
34
39
  end
35
40
  end
36
- end
41
+
42
+ private
43
+
44
+ def parsed_validation_response!(email)
45
+ res = RestClient.get "https://api:#{mailgun_public_key}@api.mailgun.net/v2/address/validate", {params: {address: email}}
46
+ JSON.parse(res)
47
+ end
48
+ def mailgun_public_key
49
+ MAILGUN_PUBLIC_KEY || ENV['MAILGUN_PUBLIC_KEY'] || raise("You need to supply your mailgun public api key")
50
+ end
51
+ end
@@ -1,3 +1,3 @@
1
1
  module MailgunEmailValidator
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailgun_email_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Feldman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-06 00:00:00.000000000 Z
11
+ date: 2014-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rest-client
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: spectator-validates_email
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sqlite3
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  description: Ability to validate e-mails using the Mailgun API with a REGEX fallback.
@@ -87,11 +87,11 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - README.md
91
+ - lib/mailgun_email_validator.rb
90
92
  - lib/mailgun_email_validator/railtie.rb
91
93
  - lib/mailgun_email_validator/validator.rb
92
94
  - lib/mailgun_email_validator/version.rb
93
- - lib/mailgun_email_validator.rb
94
- - README.md
95
95
  homepage: http://github.com/zachfeldman/mailgun_email_validator
96
96
  licenses:
97
97
  - GPL-3
@@ -102,17 +102,17 @@ require_paths:
102
102
  - lib
103
103
  required_ruby_version: !ruby/object:Gem::Requirement
104
104
  requirements:
105
- - - '>='
105
+ - - ">="
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - '>='
110
+ - - ">="
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  requirements: []
114
114
  rubyforge_project:
115
- rubygems_version: 2.0.3
115
+ rubygems_version: 2.2.2
116
116
  signing_key:
117
117
  specification_version: 4
118
118
  summary: Ability to validate e-mails using the Mailgun API