actionview-encoded_mail_to 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1889e7f329fc1788237954b905303c8ea5e42270
|
4
|
+
data.tar.gz: 54405ecf947dec7c922eff82ff3560258d89a7e0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f47a5712d7a7287c6c296ba93bec885fa1c5b64a506222369a207af21934bbd76137d2e8eb28ee3926f2daa2895c472c99d497aae24f0e613bb5f9577446b171
|
7
|
+
data.tar.gz: 7e29b7714b642b5c06f5d9753e3879e91ba0af4b27265d2cfe417dd018610aace5c17ef18a04068da8c116779846dd2b3e77c4ad729c26658e6379cfeb812860
|
data/README.md
CHANGED
@@ -43,7 +43,7 @@ Use the `mail_to` helper method just as you did prior to Rails 4.0.
|
|
43
43
|
|
44
44
|
```ruby
|
45
45
|
mail_to "me@domain.com", "My email", encode: "javascript"
|
46
|
-
# => <script>eval(decodeURIComponent('%64%6f%63...%27%29%3b'))</script>
|
46
|
+
# => <script id="mail_to-sz6xohiu">eval(decodeURIComponent('%64%6f%63...%27%29%3b'))</script>
|
47
47
|
|
48
48
|
mail_to "me@domain.com", "My email", encode: "hex"
|
49
49
|
# => <a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d">My email</a>
|
@@ -80,8 +80,8 @@ module EncodedMailTo
|
|
80
80
|
html_options.merge("href" => "mailto:#{email_address}#{extras}".html_safe).each_pair do |name,value|
|
81
81
|
set_attributes += "a.setAttribute('#{name}', '#{value}');"
|
82
82
|
end
|
83
|
-
|
84
|
-
|
83
|
+
script_id = rand(36**8).to_s(36)
|
84
|
+
create_link = "var script = document.getElementById('mail_to-#{script_id}');" +
|
85
85
|
"var a = document.createElement('a');" +
|
86
86
|
"#{set_attributes}" +
|
87
87
|
"a.appendChild(document.createTextNode('#{name || email_address_obfuscated.html_safe}'));" +
|
@@ -89,7 +89,7 @@ module EncodedMailTo
|
|
89
89
|
create_link.each_byte do |c|
|
90
90
|
string << sprintf("%%%x", c)
|
91
91
|
end
|
92
|
-
"<script>eval(decodeURIComponent('#{string}'))</script>".html_safe
|
92
|
+
"<script id=\"mail_to-#{script_id}\">eval(decodeURIComponent('#{string}'))</script>".html_safe
|
93
93
|
when "hex"
|
94
94
|
email_address_encoded = email_address_obfuscated.unpack('C*').map {|c|
|
95
95
|
sprintf("&#%d;", c)
|
@@ -31,18 +31,33 @@ class TestActionViewEncodedMailTo < MiniTest::Unit::TestCase
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_mail_to_with_javascript
|
34
|
-
|
35
|
-
"
|
34
|
+
assert_match(
|
35
|
+
/<script id=\"mail_to-\S+\">eval\(decodeURIComponent\('%76%61%72%20%73%63%72%69%70%74%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%27%6d%61%69%6c%5f%74%6f%2d\S+%27%29%3b%76%61%72%20%61%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%45%6c%65%6d%65%6e%74%28%27%61%27%29%3b%61%2e%73%65%74%41%74%74%72%69%62%75%74%65%28%27%68%72%65%66%27%2c%20%27%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%27%29%3b%61%2e%61%70%70%65%6e%64%43%68%69%6c%64%28%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%54%65%78%74%4e%6f%64%65%28%27%4d%79%20%65%6d%61%69%6c%27%29%29%3b%73%63%72%69%70%74%2e%70%61%72%65%6e%74%4e%6f%64%65%2e%69%6e%73%65%72%74%42%65%66%6f%72%65%28%61%2c%73%63%72%69%70%74%29%3b'\)\)<\/script>/,
|
36
36
|
mail_to("me@domain.com", "My email", encode: "javascript")
|
37
37
|
)
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_mail_to_with_javascript_unicode
|
41
|
-
|
42
|
-
"
|
41
|
+
assert_match(
|
42
|
+
/<script id=\"mail_to-\S+\">eval\(decodeURIComponent\('%76%61%72%20%73%63%72%69%70%74%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%27%6d%61%69%6c%5f%74%6f%2d\S+%27%29%3b%76%61%72%20%61%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%45%6c%65%6d%65%6e%74%28%27%61%27%29%3b%61%2e%73%65%74%41%74%74%72%69%62%75%74%65%28%27%68%72%65%66%27%2c%20%27%6d%61%69%6c%74%6f%3a%75%6e%69%63%6f%64%65%40%65%78%61%6d%70%6c%65%2e%63%6f%6d%27%29%3b%61%2e%61%70%70%65%6e%64%43%68%69%6c%64%28%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%54%65%78%74%4e%6f%64%65%28%27%c3%ba%6e%69%63%6f%64%65%27%29%29%3b%73%63%72%69%70%74%2e%70%61%72%65%6e%74%4e%6f%64%65%2e%69%6e%73%65%72%74%42%65%66%6f%72%65%28%61%2c%73%63%72%69%70%74%29%3b'\)\)<\/script>/,
|
43
43
|
mail_to("unicode@example.com", "únicode", encode: "javascript")
|
44
44
|
)
|
45
45
|
end
|
46
|
+
|
47
|
+
def test_multiple_mail_to_with_javascript
|
48
|
+
first = mail_to("me@domain.com", "My email", encode: "javascript")
|
49
|
+
second = mail_to("me@domain.com", "My email", encode: "javascript")
|
50
|
+
|
51
|
+
assert_match(
|
52
|
+
/<script id=\"mail_to-\S+\">eval\(decodeURIComponent\('%76%61%72%20%73%63%72%69%70%74%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%27%6d%61%69%6c%5f%74%6f%2d\S+%27%29%3b%76%61%72%20%61%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%45%6c%65%6d%65%6e%74%28%27%61%27%29%3b%61%2e%73%65%74%41%74%74%72%69%62%75%74%65%28%27%68%72%65%66%27%2c%20%27%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%27%29%3b%61%2e%61%70%70%65%6e%64%43%68%69%6c%64%28%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%54%65%78%74%4e%6f%64%65%28%27%4d%79%20%65%6d%61%69%6c%27%29%29%3b%73%63%72%69%70%74%2e%70%61%72%65%6e%74%4e%6f%64%65%2e%69%6e%73%65%72%74%42%65%66%6f%72%65%28%61%2c%73%63%72%69%70%74%29%3b'\)\)<\/script>/,
|
53
|
+
first
|
54
|
+
)
|
55
|
+
assert_match(
|
56
|
+
/<script id=\"mail_to-\S+\">eval\(decodeURIComponent\('%76%61%72%20%73%63%72%69%70%74%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%27%6d%61%69%6c%5f%74%6f%2d\S+%27%29%3b%76%61%72%20%61%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%45%6c%65%6d%65%6e%74%28%27%61%27%29%3b%61%2e%73%65%74%41%74%74%72%69%62%75%74%65%28%27%68%72%65%66%27%2c%20%27%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%27%29%3b%61%2e%61%70%70%65%6e%64%43%68%69%6c%64%28%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%54%65%78%74%4e%6f%64%65%28%27%4d%79%20%65%6d%61%69%6c%27%29%29%3b%73%63%72%69%70%74%2e%70%61%72%65%6e%74%4e%6f%64%65%2e%69%6e%73%65%72%74%42%65%66%6f%72%65%28%61%2c%73%63%72%69%70%74%29%3b'\)\)<\/script>/,
|
57
|
+
second
|
58
|
+
)
|
59
|
+
refute_equal first, second
|
60
|
+
end
|
46
61
|
|
47
62
|
def test_mail_with_options
|
48
63
|
assert_equal(
|
@@ -89,13 +104,13 @@ class TestActionViewEncodedMailTo < MiniTest::Unit::TestCase
|
|
89
104
|
mail_to("me@domain.com", nil, encode: "hex", replace_at: "(at)", replace_dot: "(dot)")
|
90
105
|
)
|
91
106
|
|
92
|
-
|
93
|
-
|
107
|
+
assert_match(
|
108
|
+
/<script id=\"mail_to-\S+\">eval\(decodeURIComponent\('%76%61%72%20%73%63%72%69%70%74%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%27%6d%61%69%6c%5f%74%6f%2d\S+%27%29%3b%76%61%72%20%61%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%45%6c%65%6d%65%6e%74%28%27%61%27%29%3b%61%2e%73%65%74%41%74%74%72%69%62%75%74%65%28%27%68%72%65%66%27%2c%20%27%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%27%29%3b%61%2e%61%70%70%65%6e%64%43%68%69%6c%64%28%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%54%65%78%74%4e%6f%64%65%28%27%4d%79%20%65%6d%61%69%6c%27%29%29%3b%73%63%72%69%70%74%2e%70%61%72%65%6e%74%4e%6f%64%65%2e%69%6e%73%65%72%74%42%65%66%6f%72%65%28%61%2c%73%63%72%69%70%74%29%3b'\)\)<\/script>/,
|
94
109
|
mail_to("me@domain.com", "My email", encode: "javascript", replace_at: "(at)", replace_dot: "(dot)")
|
95
110
|
)
|
96
|
-
|
97
|
-
|
98
|
-
|
111
|
+
|
112
|
+
assert_match(
|
113
|
+
/<script id=\"mail_to-\S+\">eval\(decodeURIComponent\('%76%61%72%20%73%63%72%69%70%74%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%67%65%74%45%6c%65%6d%65%6e%74%42%79%49%64%28%27%6d%61%69%6c%5f%74%6f%2d\S+%27%29%3b%76%61%72%20%61%20%3d%20%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%45%6c%65%6d%65%6e%74%28%27%61%27%29%3b%61%2e%73%65%74%41%74%74%72%69%62%75%74%65%28%27%68%72%65%66%27%2c%20%27%6d%61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%27%29%3b%61%2e%61%70%70%65%6e%64%43%68%69%6c%64%28%64%6f%63%75%6d%65%6e%74%2e%63%72%65%61%74%65%54%65%78%74%4e%6f%64%65%28%27%6d%65%28%61%74%29%64%6f%6d%61%69%6e%28%64%6f%74%29%63%6f%6d%27%29%29%3b%73%63%72%69%70%74%2e%70%61%72%65%6e%74%4e%6f%64%65%2e%69%6e%73%65%72%74%42%65%66%6f%72%65%28%61%2c%73%63%72%69%70%74%29%3b'\)\)<\/script>/,
|
99
114
|
mail_to("me@domain.com", nil, encode: "javascript", replace_at: "(at)", replace_dot: "(dot)")
|
100
115
|
)
|
101
116
|
end
|
metadata
CHANGED
@@ -1,38 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionview-encoded_mail_to
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Nick Reed
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-03-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: minitest
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
description: Rails mail_to helper with encoding (removed from core in Rails 4.0)
|
37
42
|
email: reednj77@gmail.com
|
38
43
|
executables: []
|
@@ -53,33 +58,26 @@ files:
|
|
53
58
|
- test/test_actionview-encoded_mail_to.rb
|
54
59
|
homepage: https://github.com/reed/actionview-encoded_mail_to
|
55
60
|
licenses: []
|
61
|
+
metadata: {}
|
56
62
|
post_install_message:
|
57
63
|
rdoc_options: []
|
58
64
|
require_paths:
|
59
65
|
- lib
|
60
66
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
67
|
requirements:
|
63
|
-
- -
|
68
|
+
- - '>='
|
64
69
|
- !ruby/object:Gem::Version
|
65
70
|
version: '0'
|
66
|
-
segments:
|
67
|
-
- 0
|
68
|
-
hash: 4472424837606369379
|
69
71
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
72
|
requirements:
|
72
|
-
- -
|
73
|
+
- - '>='
|
73
74
|
- !ruby/object:Gem::Version
|
74
75
|
version: '0'
|
75
|
-
segments:
|
76
|
-
- 0
|
77
|
-
hash: 4472424837606369379
|
78
76
|
requirements: []
|
79
77
|
rubyforge_project:
|
80
|
-
rubygems_version:
|
78
|
+
rubygems_version: 2.0.0
|
81
79
|
signing_key:
|
82
|
-
specification_version:
|
80
|
+
specification_version: 4
|
83
81
|
summary: Deprecated support for email address obfuscation within the mail_to helper
|
84
82
|
method.
|
85
83
|
test_files:
|