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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- galakei (0.9.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 (>= 1.4.4, < 1.6)
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=#{doc.meta_encoding}\" />"
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>"
@@ -1,3 +1,3 @@
1
1
  module Galakei
2
- VERSION = "0.10.0"
2
+ VERSION = "0.10.1"
3
3
  end
@@ -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).should =~ /^((?!h[0-9]).)*$/
8
+ Galakei::Email.to_galakei_email(html_email).should_not =~ /<h[0-9]>/
9
9
  end
10
10
 
11
- it "should not have images" do
12
- html_email='<a href="http://dragonmobile.nuancemobiledeveloper.com/"><img src="http://www.mobilemonday.jp/wp-content/uploads/2011/01/NMDP.jpg" alt=""></a>this was an image'
13
- Galakei::Email.to_galakei_email(html_email).should =~ /^((?!img).)*$/
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).should =~ /^((?!ftp).)*$/m
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
- version: 0.10.0
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
- date: 2011-09-02 00:00:00.000000000Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
19
+
20
+ date: 2011-09-08 00:00:00 Z
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
17
23
  name: actionpack
18
- requirement: &2157761600 !ruby/object:Gem::Requirement
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
- prerelease: false
26
- version_requirements: *2157761600
27
- - !ruby/object:Gem::Dependency
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
28
39
  name: rack
29
- requirement: &2157761100 !ruby/object:Gem::Requirement
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
- prerelease: false
37
- version_requirements: *2157761100
38
- - !ruby/object:Gem::Dependency
53
+ version_requirements: *id002
54
+ - !ruby/object:Gem::Dependency
39
55
  name: css_parser
40
- requirement: &2157760720 !ruby/object:Gem::Requirement
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
41
58
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ hash: 3
63
+ segments:
64
+ - 0
65
+ version: "0"
46
66
  type: :runtime
47
- prerelease: false
48
- version_requirements: *2157760720
49
- - !ruby/object:Gem::Dependency
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
50
69
  name: nokogiri
51
- requirement: &2157760260 !ruby/object:Gem::Requirement
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
52
72
  none: false
53
- requirements:
54
- - - ! '>='
55
- - !ruby/object:Gem::Version
56
- version: '0'
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 0
79
+ version: "0"
57
80
  type: :runtime
58
- prerelease: false
59
- version_requirements: *2157760260
60
- - !ruby/object:Gem::Dependency
81
+ version_requirements: *id004
82
+ - !ruby/object:Gem::Dependency
61
83
  name: sanitize
62
- requirement: &2157759840 !ruby/object:Gem::Requirement
84
+ prerelease: false
85
+ requirement: &id005 !ruby/object:Gem::Requirement
63
86
  none: false
64
- requirements:
65
- - - ! '>='
66
- - !ruby/object:Gem::Version
67
- version: '0'
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ hash: 3
91
+ segments:
92
+ - 0
93
+ version: "0"
68
94
  type: :runtime
69
- prerelease: false
70
- version_requirements: *2157759840
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
- files:
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
- require_paths:
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
- version: '0'
151
- required_rubygems_version: !ruby/object:Gem::Requirement
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
- version: '0'
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
+