galakei 0.10.1 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -2,3 +2,6 @@
2
2
  pkg/*
3
3
  log
4
4
  .rvmrc
5
+ *.swp
6
+ *~
7
+ TAGS
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- galakei (0.10.0)
4
+ galakei (0.11.0)
5
5
  actionpack (~> 3.0.3)
6
6
  css_parser
7
7
  nokogiri
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
+
@@ -0,0 +1,5 @@
1
+ class Galakei::Email::Railtie < Rails::Railtie
2
+ initializer "galakei.register.method.for.mail" do
3
+ ActionMailer::Base.register_interceptor Galakei::Email::AuMailInterceptor
4
+ end
5
+ end
@@ -17,3 +17,4 @@ end
17
17
 
18
18
  require 'galakei/session_id_parameter/railtie'
19
19
  require 'galakei/docomo_css/railtie'
20
+ require 'galakei/email/railtie'
@@ -1,3 +1,3 @@
1
1
  module Galakei
2
- VERSION = "0.10.1"
2
+ VERSION = "0.11.0"
3
3
  end
@@ -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
- hash: 53
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
- date: 2011-09-08 00:00:00 Z
21
- dependencies:
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
- prerelease: false
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- requirement: &id003 !ruby/object:Gem::Requirement
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
- hash: 3
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
- requirement: &id004 !ruby/object:Gem::Requirement
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
- hash: 3
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
- requirement: &id005 !ruby/object:Gem::Requirement
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
- hash: 3
91
- segments:
92
- - 0
93
- version: "0"
64
+ requirements:
65
+ - - ! '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
94
68
  type: :runtime
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
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
- hash: 3
180
- segments:
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
- hash: 3
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.6
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
-