galakei 0.10.1 → 0.11.0
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/.gitignore +3 -0
- data/Gemfile.lock +1 -1
- data/lib/galakei.rb +6 -5
- data/lib/galakei/email.rb +3 -0
- data/lib/galakei/email/au_mail_interceptor.rb +22 -0
- data/lib/galakei/email/railtie.rb +5 -0
- data/lib/galakei/railtie.rb +1 -0
- data/lib/galakei/version.rb +1 -1
- data/spec/acceptance/au_mail_interceptor_spec.rb +43 -0
- data/spec/app/fake.rb +2 -0
- metadata +61 -95
data/Gemfile.lock
CHANGED
data/lib/galakei.rb
CHANGED
@@ -1,8 +1,3 @@
|
|
1
|
-
if defined?(Rails)
|
2
|
-
require 'galakei/railtie'
|
3
|
-
require 'galakei/engine'
|
4
|
-
require 'galakei/use_rack_request_to_extract_sid'
|
5
|
-
end
|
6
1
|
require 'galakei/request'
|
7
2
|
require 'galakei/docomo_css'
|
8
3
|
require 'galakei/session_id_parameter'
|
@@ -23,3 +18,9 @@ module Galakei
|
|
23
18
|
autoload :Views, "galakei/filter/views"
|
24
19
|
end
|
25
20
|
end
|
21
|
+
|
22
|
+
if defined?(Rails)
|
23
|
+
require 'galakei/railtie'
|
24
|
+
require 'galakei/engine'
|
25
|
+
require 'galakei/use_rack_request_to_extract_sid'
|
26
|
+
end
|
data/lib/galakei/email.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'sanitize'
|
2
2
|
module Galakei::Email
|
3
3
|
|
4
|
+
autoload :AuMailInterceptor, "galakei/email/au_mail_interceptor"
|
5
|
+
|
4
6
|
GALAKEI_EMAIL_ADDRESS_PATTERNS = [
|
5
7
|
/^.+@(.+\.)?pdx\.ne\.jp$/,
|
6
8
|
/^.+@ezweb\.ne\.jp$/,
|
@@ -44,3 +46,4 @@ module Galakei::Email
|
|
44
46
|
end
|
45
47
|
|
46
48
|
end
|
49
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
# au-kddi handsets render html mail properly only when
|
3
|
+
# all mime parts are in a flat multipart/alternate structure
|
4
|
+
class Galakei::Email::AuMailInterceptor
|
5
|
+
def self.delivering_email(message)
|
6
|
+
|
7
|
+
if message.to.first =~ /^.+@ezweb\.ne\.jp$/
|
8
|
+
if message.content_type =~ /^multipart\/related/
|
9
|
+
params = message.content_type_parameters || {}
|
10
|
+
message.content_type = ["multipart", "alternative", params]
|
11
|
+
message.parts.each do |part|
|
12
|
+
if part.content_type =~ /^multipart\/alternative/
|
13
|
+
part.parts.each{ |p| message.add_part(p) }
|
14
|
+
message.parts.delete(part)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
data/lib/galakei/railtie.rb
CHANGED
data/lib/galakei/version.rb
CHANGED
@@ -0,0 +1,43 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require File.expand_path(File.dirname(__FILE__) + '/acceptance_helper')
|
3
|
+
|
4
|
+
class AuMailInterceptorMailer < ActionMailer::Base
|
5
|
+
include ActionView::Helpers::TagHelper
|
6
|
+
include ActionView::Helpers::AssetTagHelper
|
7
|
+
|
8
|
+
def ticket(mail_address)
|
9
|
+
attachments.inline['ticket-qr-code.gif'] = "blob"
|
10
|
+
mail(:from => "info@mobalean.com",
|
11
|
+
:to => mail_address,
|
12
|
+
:subject => "subjectline") do |format|
|
13
|
+
format.text { render :text => "HELLO world" }
|
14
|
+
format.html do
|
15
|
+
render :inline => image_tag(attachments['ticket-qr-code.gif'].url,
|
16
|
+
:alt => 'QR-code ticket')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'email' do
|
24
|
+
let(:email){ ActionMailer::Base.deliveries.last }
|
25
|
+
before { AuMailInterceptorMailer.ticket(mail_address).deliver }
|
26
|
+
|
27
|
+
context "RFC compliant multipart mail" do
|
28
|
+
let(:mail_address) { "info@mobalean.com" }
|
29
|
+
it { email.content_type.should match /^multipart\/related/ }
|
30
|
+
it { email.content_type_parameters.should include("boundary") }
|
31
|
+
it { email.parts.size.should == 2 }
|
32
|
+
it { email.parts.map(&:mime_type).sort.should == ["image/gif", "multipart/alternative"] }
|
33
|
+
end
|
34
|
+
|
35
|
+
context "au html multipart mail" do
|
36
|
+
let(:mail_address) { "hihihi@ezweb.ne.jp" }
|
37
|
+
it { email.content_type.should match /^multipart\/alternative/ }
|
38
|
+
it { email.content_type_parameters.should include("boundary") }
|
39
|
+
it { email.parts.size.should == 3 }
|
40
|
+
it { email.parts.map(&:mime_type).sort.should == ["image/gif", "text/html", "text/plain" ] }
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
data/spec/app/fake.rb
CHANGED
@@ -2,6 +2,7 @@ require 'rails'
|
|
2
2
|
require 'active_record'
|
3
3
|
require 'action_controller/railtie'
|
4
4
|
require 'action_view/railtie'
|
5
|
+
require 'action_mailer/railtie'
|
5
6
|
require 'haml'
|
6
7
|
require 'galakei/railtie'
|
7
8
|
require 'galakei/engine'
|
@@ -17,6 +18,7 @@ app.config.secret_token = "3b7cd727ee24e8444053437c36cc66c4"
|
|
17
18
|
app.config.session_store :cookie_store, :key => "_myapp_session"
|
18
19
|
app.config.active_support.deprecation = :log
|
19
20
|
app.config.galakei.session_id_parameter = true
|
21
|
+
app.config.action_mailer.delivery_method = :test
|
20
22
|
app.initialize!
|
21
23
|
|
22
24
|
app.routes.draw do
|
metadata
CHANGED
@@ -1,107 +1,80 @@
|
|
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
|
+
version: 0.11.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 10
|
9
|
-
- 1
|
10
|
-
version: 0.10.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Paul McMahon
|
14
9
|
- Michael Reinsch
|
15
10
|
- Yuki Akamatsu
|
16
11
|
autorequire:
|
17
12
|
bindir: bin
|
18
13
|
cert_chain: []
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
date: 2011-09-14 00:00:00.000000000Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
23
17
|
name: actionpack
|
24
|
-
|
25
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirement: &70278177590600 !ruby/object:Gem::Requirement
|
26
19
|
none: false
|
27
|
-
requirements:
|
20
|
+
requirements:
|
28
21
|
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 1
|
31
|
-
segments:
|
32
|
-
- 3
|
33
|
-
- 0
|
34
|
-
- 3
|
22
|
+
- !ruby/object:Gem::Version
|
35
23
|
version: 3.0.3
|
36
24
|
type: :runtime
|
37
|
-
version_requirements: *id001
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: rack
|
40
25
|
prerelease: false
|
41
|
-
|
26
|
+
version_requirements: *70278177590600
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rack
|
29
|
+
requirement: &70278177589740 !ruby/object:Gem::Requirement
|
42
30
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
hash: 29
|
47
|
-
segments:
|
48
|
-
- 1
|
49
|
-
- 2
|
50
|
-
- 1
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
51
34
|
version: 1.2.1
|
52
35
|
type: :runtime
|
53
|
-
version_requirements: *id002
|
54
|
-
- !ruby/object:Gem::Dependency
|
55
|
-
name: css_parser
|
56
36
|
prerelease: false
|
57
|
-
|
37
|
+
version_requirements: *70278177589740
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: css_parser
|
40
|
+
requirement: &70278177589060 !ruby/object:Gem::Requirement
|
58
41
|
none: false
|
59
|
-
requirements:
|
60
|
-
- -
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
|
63
|
-
segments:
|
64
|
-
- 0
|
65
|
-
version: "0"
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
66
46
|
type: :runtime
|
67
|
-
version_requirements: *id003
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: nokogiri
|
70
47
|
prerelease: false
|
71
|
-
|
48
|
+
version_requirements: *70278177589060
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: nokogiri
|
51
|
+
requirement: &70278177588420 !ruby/object:Gem::Requirement
|
72
52
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
segments:
|
78
|
-
- 0
|
79
|
-
version: "0"
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
80
57
|
type: :runtime
|
81
|
-
version_requirements: *id004
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: sanitize
|
84
58
|
prerelease: false
|
85
|
-
|
59
|
+
version_requirements: *70278177588420
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: sanitize
|
62
|
+
requirement: &70278177587560 !ruby/object:Gem::Requirement
|
86
63
|
none: false
|
87
|
-
requirements:
|
88
|
-
- -
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
|
91
|
-
segments:
|
92
|
-
- 0
|
93
|
-
version: "0"
|
64
|
+
requirements:
|
65
|
+
- - ! '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
94
68
|
type: :runtime
|
95
|
-
|
96
|
-
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *70278177587560
|
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
|
97
73
|
email: info@mobalean.com
|
98
74
|
executables: []
|
99
|
-
|
100
75
|
extensions: []
|
101
|
-
|
102
76
|
extra_rdoc_files: []
|
103
|
-
|
104
|
-
files:
|
77
|
+
files:
|
105
78
|
- .gitignore
|
106
79
|
- Gemfile
|
107
80
|
- Gemfile.lock
|
@@ -118,6 +91,8 @@ files:
|
|
118
91
|
- lib/galakei/docomo_css/railtie.rb
|
119
92
|
- lib/galakei/docomo_css/stylesheet.rb
|
120
93
|
- lib/galakei/email.rb
|
94
|
+
- lib/galakei/email/au_mail_interceptor.rb
|
95
|
+
- lib/galakei/email/railtie.rb
|
121
96
|
- lib/galakei/emoji_table.rb
|
122
97
|
- lib/galakei/engine.rb
|
123
98
|
- lib/galakei/filter/base.rb
|
@@ -139,6 +114,7 @@ files:
|
|
139
114
|
- lib/galakei/use_rack_request_to_extract_sid.rb
|
140
115
|
- lib/galakei/version.rb
|
141
116
|
- spec/acceptance/acceptance_helper.rb
|
117
|
+
- spec/acceptance/au_mail_interceptor_spec.rb
|
142
118
|
- spec/acceptance/docomo_css_spec.rb
|
143
119
|
- spec/acceptance/emoji_table_spec.rb
|
144
120
|
- spec/acceptance/haml_spec.rb
|
@@ -165,36 +141,26 @@ files:
|
|
165
141
|
- spec/spec_helper.rb
|
166
142
|
homepage: http://www.mobalean.com
|
167
143
|
licenses: []
|
168
|
-
|
169
144
|
post_install_message:
|
170
145
|
rdoc_options: []
|
171
|
-
|
172
|
-
require_paths:
|
146
|
+
require_paths:
|
173
147
|
- lib
|
174
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
175
149
|
none: false
|
176
|
-
requirements:
|
177
|
-
- -
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
|
180
|
-
|
181
|
-
- 0
|
182
|
-
version: "0"
|
183
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ! '>='
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
184
155
|
none: false
|
185
|
-
requirements:
|
186
|
-
- -
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
|
189
|
-
segments:
|
190
|
-
- 0
|
191
|
-
version: "0"
|
156
|
+
requirements:
|
157
|
+
- - ! '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
192
160
|
requirements: []
|
193
|
-
|
194
161
|
rubyforge_project: galakei
|
195
|
-
rubygems_version: 1.8.
|
162
|
+
rubygems_version: 1.8.10
|
196
163
|
signing_key:
|
197
164
|
specification_version: 3
|
198
165
|
summary: Japanese feature phones support
|
199
166
|
test_files: []
|
200
|
-
|