galakei 0.10.0 → 0.10.1
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/Gemfile.lock +2 -2
- data/lib/galakei/email.rb +11 -5
- data/lib/galakei/version.rb +1 -1
- data/spec/galakei/email_spec.rb +13 -13
- metadata +94 -57
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
galakei (0.
|
4
|
+
galakei (0.10.0)
|
5
5
|
actionpack (~> 3.0.3)
|
6
6
|
css_parser
|
7
7
|
nokogiri
|
@@ -107,7 +107,7 @@ GEM
|
|
107
107
|
rspec (~> 2.5.0)
|
108
108
|
rubyzip (0.9.4)
|
109
109
|
sanitize (2.0.3)
|
110
|
-
nokogiri (
|
110
|
+
nokogiri (< 1.6, >= 1.4.4)
|
111
111
|
selenium-webdriver (0.1.3)
|
112
112
|
childprocess (~> 0.1.5)
|
113
113
|
ffi (~> 0.6.3)
|
data/lib/galakei/email.rb
CHANGED
@@ -10,9 +10,15 @@ module Galakei::Email
|
|
10
10
|
/^.+@emnet\.ne\.jp$/,
|
11
11
|
/^.+@docomo\.ne\.jp$/ ]
|
12
12
|
|
13
|
-
SANITIZE_OPTIONS = {
|
14
|
-
:elements => %w{br a div hr},
|
15
|
-
:attributes => {'a' => ['href']
|
13
|
+
SANITIZE_OPTIONS = {
|
14
|
+
:elements => %w{font blink marquee br a div hr img},
|
15
|
+
:attributes => {'a' => ['href'],
|
16
|
+
'font' => ['size','color'],
|
17
|
+
'marquee' => ['behaviour'],
|
18
|
+
'hr' => ['color'],
|
19
|
+
'div' => ['align'],
|
20
|
+
'img' => ['src'],
|
21
|
+
},
|
16
22
|
:protocols => {'a' => {'href' => ['http', 'https', 'mailto']}},
|
17
23
|
:whitespace_elements => []
|
18
24
|
}
|
@@ -29,9 +35,9 @@ module Galakei::Email
|
|
29
35
|
node.name = "div"
|
30
36
|
node.after("<br />")
|
31
37
|
end
|
32
|
-
|
38
|
+
encoding = doc.meta_encoding || "UTF-8"
|
33
39
|
res = "<html><head>"
|
34
|
-
res << "<meta http-equiv=\"Content-type\" content=\"text/html;charset=#{
|
40
|
+
res << "<meta http-equiv=\"Content-type\" content=\"text/html;charset=#{encoding}\" />"
|
35
41
|
res << "</head><body>"
|
36
42
|
res << Sanitize.clean(doc.to_s, SANITIZE_OPTIONS)
|
37
43
|
res << "</body></html>"
|
data/lib/galakei/version.rb
CHANGED
data/spec/galakei/email_spec.rb
CHANGED
@@ -5,22 +5,17 @@ describe Galakei::Email do
|
|
5
5
|
|
6
6
|
it "should not have h tags" do
|
7
7
|
html_email = '<h1>Email big heading</h1><h2>Second heading</h2><h6>Sixth heading</h6>'
|
8
|
-
Galakei::Email.to_galakei_email(html_email).
|
8
|
+
Galakei::Email.to_galakei_email(html_email).should_not =~ /<h[0-9]>/
|
9
9
|
end
|
10
10
|
|
11
|
-
it "should
|
12
|
-
html_email='<a href="http://dragonmobile.nuancemobiledeveloper.com/"><img src="
|
13
|
-
Galakei::Email.to_galakei_email(html_email).should =~
|
11
|
+
it "should have images with cid" do
|
12
|
+
html_email='<a href="http://dragonmobile.nuancemobiledeveloper.com/"><img src="cid:image-attachment-id" alt=""/></a>this was an image'
|
13
|
+
Galakei::Email.to_galakei_email(html_email).should =~ /img.*cid/m
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should not have unsupported protocols" do
|
17
|
-
html_email='<a href="ftp://some.ftpsite.com/">Downloadz youz warez herez</a>'
|
18
|
-
Galakei::Email.to_galakei_email(html_email).
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should not have head elements" do
|
22
|
-
html_email='<html><head><meta http-equiv="blah" content=""><title>Document X</title><head><body></body></html>'
|
23
|
-
Galakei::Email.to_galakei_email(html_email).should =~ /^((?!head).)*$/
|
17
|
+
html_email='<a href="ftp://some.ftpsite.com/">Downloadz youz warez herez</a> Monsieur'
|
18
|
+
Galakei::Email.to_galakei_email(html_email).should_not =~ /ftpsite/
|
24
19
|
end
|
25
20
|
|
26
21
|
it "should have a html, head, meta and body" do
|
@@ -29,8 +24,13 @@ describe Galakei::Email do
|
|
29
24
|
end
|
30
25
|
|
31
26
|
it "should have div,href,br,hr elements" do
|
32
|
-
html_email='<div><a href="http://dragonmobile.nuancemobiledeveloper.com/"><img src="http://www.mobilemonday.jp/wp-content/uploads/2011/01/NMDP.jpg" alt=""></a></div><hr> <br><div class="register_button"><a href="http://gigs.checkin.local:3000/events/2/tickets/new?auth_token=demo">Register</a></div>'
|
33
|
-
Galakei::Email.to_galakei_email(html_email).should =~ /div(.*)href(.*)hr(.*)br/m
|
27
|
+
html_email='<div align="center"><a href="http://dragonmobile.nuancemobiledeveloper.com/"><img src="http://www.mobilemonday.jp/wp-content/uploads/2011/01/NMDP.jpg" alt=""></a></div><hr color="blue"> <br><div class="register_button"><a href="http://gigs.checkin.local:3000/events/2/tickets/new?auth_token=demo">Register</a></div>'
|
28
|
+
Galakei::Email.to_galakei_email(html_email).should =~ /div(.*)align(.*)href(.*)hr(.*)blue(.*)br/m
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should allow font, blink and marquee elements" do
|
32
|
+
html_email='<div align="center"><font size="2" color="red">NEWS FLASH</font><blink>plink plink plink the nineties!</blink><marquee behaviour="scroll">This is corn!</marquee></div>'
|
33
|
+
Galakei::Email.to_galakei_email(html_email).should =~ /font(.*)size(.*)color(.*)blink(.*)marquee(.*)behaviour/m
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
metadata
CHANGED
@@ -1,80 +1,107 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: galakei
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 53
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 10
|
9
|
+
- 1
|
10
|
+
version: 0.10.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Paul McMahon
|
9
14
|
- Michael Reinsch
|
10
15
|
- Yuki Akamatsu
|
11
16
|
autorequire:
|
12
17
|
bindir: bin
|
13
18
|
cert_chain: []
|
14
|
-
|
15
|
-
|
16
|
-
|
19
|
+
|
20
|
+
date: 2011-09-08 00:00:00 Z
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
17
23
|
name: actionpack
|
18
|
-
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
26
|
none: false
|
20
|
-
requirements:
|
27
|
+
requirements:
|
21
28
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 1
|
31
|
+
segments:
|
32
|
+
- 3
|
33
|
+
- 0
|
34
|
+
- 3
|
23
35
|
version: 3.0.3
|
24
36
|
type: :runtime
|
25
|
-
|
26
|
-
|
27
|
-
- !ruby/object:Gem::Dependency
|
37
|
+
version_requirements: *id001
|
38
|
+
- !ruby/object:Gem::Dependency
|
28
39
|
name: rack
|
29
|
-
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
42
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 29
|
47
|
+
segments:
|
48
|
+
- 1
|
49
|
+
- 2
|
50
|
+
- 1
|
34
51
|
version: 1.2.1
|
35
52
|
type: :runtime
|
36
|
-
|
37
|
-
|
38
|
-
- !ruby/object:Gem::Dependency
|
53
|
+
version_requirements: *id002
|
54
|
+
- !ruby/object:Gem::Dependency
|
39
55
|
name: css_parser
|
40
|
-
|
56
|
+
prerelease: false
|
57
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
58
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
46
66
|
type: :runtime
|
47
|
-
|
48
|
-
|
49
|
-
- !ruby/object:Gem::Dependency
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
50
69
|
name: nokogiri
|
51
|
-
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
72
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 3
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
57
80
|
type: :runtime
|
58
|
-
|
59
|
-
|
60
|
-
- !ruby/object:Gem::Dependency
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
61
83
|
name: sanitize
|
62
|
-
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
86
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
version: "0"
|
68
94
|
type: :runtime
|
69
|
-
|
70
|
-
|
71
|
-
description: Japanese feature phones (a.k.a., keitai, galakei) have a number of restrictions
|
72
|
-
over normal web browsers. This library adds support for them
|
95
|
+
version_requirements: *id005
|
96
|
+
description: Japanese feature phones (a.k.a., keitai, galakei) have a number of restrictions over normal web browsers. This library adds support for them
|
73
97
|
email: info@mobalean.com
|
74
98
|
executables: []
|
99
|
+
|
75
100
|
extensions: []
|
101
|
+
|
76
102
|
extra_rdoc_files: []
|
77
|
-
|
103
|
+
|
104
|
+
files:
|
78
105
|
- .gitignore
|
79
106
|
- Gemfile
|
80
107
|
- Gemfile.lock
|
@@ -138,26 +165,36 @@ files:
|
|
138
165
|
- spec/spec_helper.rb
|
139
166
|
homepage: http://www.mobalean.com
|
140
167
|
licenses: []
|
168
|
+
|
141
169
|
post_install_message:
|
142
170
|
rdoc_options: []
|
143
|
-
|
171
|
+
|
172
|
+
require_paths:
|
144
173
|
- lib
|
145
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
146
175
|
none: false
|
147
|
-
requirements:
|
148
|
-
- -
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
|
151
|
-
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
hash: 3
|
180
|
+
segments:
|
181
|
+
- 0
|
182
|
+
version: "0"
|
183
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
184
|
none: false
|
153
|
-
requirements:
|
154
|
-
- -
|
155
|
-
- !ruby/object:Gem::Version
|
156
|
-
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
hash: 3
|
189
|
+
segments:
|
190
|
+
- 0
|
191
|
+
version: "0"
|
157
192
|
requirements: []
|
193
|
+
|
158
194
|
rubyforge_project: galakei
|
159
195
|
rubygems_version: 1.8.6
|
160
196
|
signing_key:
|
161
197
|
specification_version: 3
|
162
198
|
summary: Japanese feature phones support
|
163
199
|
test_files: []
|
200
|
+
|