mailchecker 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.
- data/README.md +30 -2
- data/lib/generators/mailchecker/assets_generator.rb +13 -0
- data/lib/generators/mailchecker/install_generator.rb +18 -0
- data/lib/generators/templates/assets/mailchecker.js.coffee.erb +7 -0
- data/lib/generators/templates/mailchecker.rb +6 -0
- data/lib/mailchecker/version.rb +1 -1
- data/locales/en.yml +7 -0
- data/locales/fr.yml +7 -0
- data/vendor/assets/javascripts/mailchecker.js.coffee.erb +42 -0
- metadata +8 -1
data/README.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
# Mailchecker
|
2
2
|
|
3
|
-
|
3
|
+
Simply validate your email in 3 steps using Mail-checker web service (http://www.mail-checker.com).
|
4
|
+
- Validate the format of your email
|
5
|
+
- Validate if the domain is responding
|
6
|
+
- Validate if the email is not a temporary mail (like yopmail or others...)
|
7
|
+
|
8
|
+
This will be very helpful when you have to contact your users and you want to avoid errors causing lack of communication or want to block "spamboxes"
|
4
9
|
|
5
10
|
## Installation
|
6
11
|
|
@@ -18,7 +23,30 @@ Or install it yourself as:
|
|
18
23
|
|
19
24
|
## Usage
|
20
25
|
|
21
|
-
|
26
|
+
Register your application in Mail-checker.com (http://www.mail-checker.com/apps/new).
|
27
|
+
Generate the config file for the gem
|
28
|
+
|
29
|
+
$ rails generate mailchecker:install
|
30
|
+
|
31
|
+
Update the file (config/initializers/mailchecker.rb) with the values of your registered application (token and domain)
|
32
|
+
|
33
|
+
Now you have two ways to do the validation:
|
34
|
+
|
35
|
+
On the server side:
|
36
|
+
|
37
|
+
Add in your model the validation of your attribute for the email (hopefully email)
|
38
|
+
|
39
|
+
class User < ActiveRecord::Base
|
40
|
+
mailchecker :email
|
41
|
+
end
|
42
|
+
|
43
|
+
On the client side:
|
44
|
+
|
45
|
+
Call the javascript lib on your email fields and do the stuff you need on the generated file
|
46
|
+
|
47
|
+
$ rails generate mailchecker:assets
|
48
|
+
|
49
|
+
Of course you can do the validation on the both side if you want
|
22
50
|
|
23
51
|
## Contributing
|
24
52
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Mailchecker
|
2
|
+
module Generators
|
3
|
+
class AssetsGenerator < ::Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../../templates", __FILE__)
|
5
|
+
|
6
|
+
desc "Create the javascript file to make the validation in client side."
|
7
|
+
|
8
|
+
def copy_javascript
|
9
|
+
template "assets/mailchecker.js.coffee.erb", "app/assets/javascripts/mailchecker_client.js.coffee.erb"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Mailchecker
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < ::Rails::Generators::Base
|
4
|
+
source_root File.expand_path("../../templates", __FILE__)
|
5
|
+
|
6
|
+
desc "Creates a Mail-checker initializer and copy locale files to your application."
|
7
|
+
|
8
|
+
def copy_initializer
|
9
|
+
template "mailchecker.rb", "config/initializers/mailchecker.rb"
|
10
|
+
end
|
11
|
+
|
12
|
+
def copy_locales
|
13
|
+
copy_file "../../../locales/en.yml", "config/locales/mailchecker.en.yml"
|
14
|
+
copy_file "../../../locales/fr.yml", "config/locales/mailchecker.fr.yml"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
#= require mailchecker
|
2
|
+
|
3
|
+
$("input[type=email]").mail_checker '<%= Mailchecker.token %>',
|
4
|
+
success: -> console.log "email #{$(this).val()} is valid" # do what you whant when it's ok
|
5
|
+
invalid_format: -> console.error "format of #{$(this).val()} isn't valid" # do what you whant when the format is not good
|
6
|
+
invalid_domain: -> console.error "domain of #{$(this).val()} is not responding" # do what you whant when the domain is not responding
|
7
|
+
temporary_mail: -> console.error "email #{$(this).val()} is a temporary mail" # do what you whant when it's a temporary mail
|
data/lib/mailchecker/version.rb
CHANGED
data/locales/en.yml
ADDED
data/locales/fr.yml
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
$.fn.mail_checker = (token, options) ->
|
2
|
+
if typeof token is 'object'
|
3
|
+
options = token
|
4
|
+
token = null
|
5
|
+
|
6
|
+
defaults =
|
7
|
+
token: null
|
8
|
+
trigger_on: "change"
|
9
|
+
success: () ->
|
10
|
+
invalid_format: () ->
|
11
|
+
invalid_domain: () ->
|
12
|
+
temporary_mail: () ->
|
13
|
+
error: (error) -> console.error(error)
|
14
|
+
|
15
|
+
domain = document.domain.match /([^.]+)\.[^.]+.?$/
|
16
|
+
|
17
|
+
domain = domain[0] if domain and domain.length > 0
|
18
|
+
options = $.extend {}, defaults, options
|
19
|
+
|
20
|
+
unless token
|
21
|
+
token = options.token
|
22
|
+
unless token
|
23
|
+
console.error "Missing token parameter"
|
24
|
+
return
|
25
|
+
|
26
|
+
$(this).bind options.trigger_on, ->
|
27
|
+
_this = this
|
28
|
+
data =
|
29
|
+
token: token
|
30
|
+
domain: domain
|
31
|
+
email: $(this).val()
|
32
|
+
$.ajax
|
33
|
+
url: "<%= Mailchecker.url %>"
|
34
|
+
data: data
|
35
|
+
dataType: "json"
|
36
|
+
complete: (jqXHR, textStatus) ->
|
37
|
+
options.success.apply(_this) if jqXHR.status is 200
|
38
|
+
options.invalid_format.apply(_this) if jqXHR.status is 422
|
39
|
+
options.invalid_domain.apply(_this) if jqXHR.status is 502
|
40
|
+
options.temporary_mail.apply(_this) if jqXHR.status is 406
|
41
|
+
options.error.apply(_this, [$.parseJSON(jqXHR.responseText).error]) if jqXHR.status is 400
|
42
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailchecker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -25,9 +25,16 @@ files:
|
|
25
25
|
- LICENSE.txt
|
26
26
|
- README.md
|
27
27
|
- Rakefile
|
28
|
+
- lib/generators/mailchecker/assets_generator.rb
|
29
|
+
- lib/generators/mailchecker/install_generator.rb
|
30
|
+
- lib/generators/templates/assets/mailchecker.js.coffee.erb
|
31
|
+
- lib/generators/templates/mailchecker.rb
|
28
32
|
- lib/mailchecker.rb
|
29
33
|
- lib/mailchecker/version.rb
|
34
|
+
- locales/en.yml
|
35
|
+
- locales/fr.yml
|
30
36
|
- mailchecker.gemspec
|
37
|
+
- vendor/assets/javascripts/mailchecker.js.coffee.erb
|
31
38
|
homepage: http://www.mail-checker.com/
|
32
39
|
licenses: []
|
33
40
|
post_install_message:
|