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 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
-