jpmobile 0.1.6 → 1.0.0.pre

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.
Files changed (73) hide show
  1. data/README +0 -0
  2. data/README.rdoc +58 -29
  3. data/Rakefile +1 -1
  4. data/VERSION.yml +4 -4
  5. data/lib/jpmobile.rb +3 -0
  6. data/lib/jpmobile/email.rb +17 -2
  7. data/lib/jpmobile/emoticon.rb +87 -23
  8. data/lib/jpmobile/emoticon/au.rb +644 -0
  9. data/lib/jpmobile/emoticon/softbank.rb +488 -0
  10. data/lib/jpmobile/emoticon/z_combine.rb +16 -13
  11. data/lib/jpmobile/hook_action_controller.rb +1 -13
  12. data/lib/jpmobile/hook_action_view.rb +3 -62
  13. data/lib/jpmobile/mail.rb +316 -0
  14. data/lib/jpmobile/mailer.rb +31 -0
  15. data/lib/jpmobile/mobile/abstract_mobile.rb +66 -0
  16. data/lib/jpmobile/mobile/au.rb +25 -2
  17. data/lib/jpmobile/mobile/docomo.rb +23 -1
  18. data/lib/jpmobile/mobile/emobile.rb +1 -1
  19. data/lib/jpmobile/mobile/softbank.rb +33 -1
  20. data/lib/jpmobile/mobile/vodafone.rb +1 -1
  21. data/lib/jpmobile/mobile/willcom.rb +1 -1
  22. data/lib/jpmobile/path_set.rb +40 -0
  23. data/lib/jpmobile/rails.rb +24 -0
  24. data/lib/jpmobile/resolver.rb +38 -0
  25. data/lib/jpmobile/util.rb +223 -14
  26. data/lib/tasks/jpmobile_tasks.rake +41 -48
  27. data/spec/rack/jpmobile/emoticon_spec.rb +3 -8
  28. data/spec/rack/jpmobile/filter_spec.rb +1 -1
  29. data/spec/rack/jpmobile/params_filter_spec.rb +4 -4
  30. data/spec/rack_helper.rb +5 -9
  31. data/spec/unit/detect_by_email_spec.rb +29 -0
  32. data/spec/unit/emoticon_spec.rb +90 -0
  33. data/spec/unit/encoding_spec.rb +102 -0
  34. data/spec/unit/mail_spec.rb +117 -0
  35. data/spec/unit/receive_mail_spec.rb +289 -0
  36. data/spec/unit/spec_helper.rb +8 -0
  37. data/spec/unit/util_spec.rb +5 -0
  38. data/test/rails/overrides/app/controllers/application_controller.rb +3 -2
  39. data/test/rails/overrides/app/controllers/template_path_controller.rb +8 -0
  40. data/test/rails/overrides/app/models/mobile_mailer.rb +19 -0
  41. data/test/rails/overrides/app/models/normal_mailer.rb +9 -0
  42. data/test/rails/overrides/spec/models/mobile_mailer_spec.rb +737 -0
  43. data/test/rails/overrides/spec/models/normal_mailer_spec.rb +34 -0
  44. data/test/rails/overrides/spec/requests/template_path_spec.rb +13 -7
  45. data/test/rails/overrides/spec/spec_helper.rb +6 -0
  46. data/test/rails/rails_root/app/controllers/application_controller.rb +3 -2
  47. data/test/rails/rails_root/app/controllers/template_path_controller.rb +8 -0
  48. data/test/rails/rails_root/app/models/mobile_mailer.rb +2 -1
  49. data/test/rails/rails_root/app/models/normal_mailer.rb +9 -0
  50. data/test/rails/rails_root/config/initializers/secret_token.rb +1 -1
  51. data/test/rails/rails_root/spec/models/mobile_mailer_spec.rb +73 -80
  52. data/test/rails/rails_root/spec/models/normal_mailer_spec.rb +34 -0
  53. data/test/rails/rails_root/spec/requests/template_path_spec.rb +13 -7
  54. data/test/rails/rails_root/spec/spec_helper.rb +1 -1
  55. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile.rb +2 -1
  56. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon.rb +7 -5
  57. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb +1 -13
  58. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb +3 -62
  59. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mail.rb +162 -111
  60. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mailer.rb +31 -0
  61. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb +34 -3
  62. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb +2 -5
  63. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/docomo.rb +4 -5
  64. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/softbank.rb +7 -8
  65. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/path_set.rb +40 -0
  66. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/params_filter.rb +1 -1
  67. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rails.rb +24 -0
  68. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb +38 -0
  69. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb +33 -23
  70. metadata +43 -14
  71. data/test/legacy/emoticon_test.rb +0 -63
  72. data/test/legacy/helper.rb +0 -8
  73. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_mailer.rb +0 -22
@@ -0,0 +1,31 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'jpmobile/mail'
3
+
4
+ module Jpmobile
5
+ module Mailer
6
+ class Base < ActionMailer::Base
7
+ self._view_paths = self._view_paths.dup
8
+ self.view_paths.unshift(Jpmobile::Resolver.new(File.join(::Rails.root, "app/views")))
9
+
10
+ def mail(headers={}, &block)
11
+ tos = headers[:to].split(/,/)
12
+
13
+ @mobile = if tos.size == 1
14
+ # for mobile
15
+ (Jpmobile::Email.detect(tos.first) || Jpmobile::Mobile::AbstractMobile).new(nil, nil)
16
+ else
17
+ # for multi to addresses
18
+ Jpmobile::Mobile::AbstractMobile.new(nil, nil)
19
+ end
20
+ self.lookup_context.mobile = @mobile.variants
21
+
22
+ m = super(headers, &block)
23
+
24
+ m.mobile = @mobile
25
+ m.charset = @mobile.mail_charset
26
+
27
+ m
28
+ end
29
+ end
30
+ end
31
+ end
@@ -4,6 +4,9 @@ require 'ipaddr'
4
4
  module Jpmobile::Mobile
5
5
  # 携帯電話の抽象クラス。
6
6
  class AbstractMobile
7
+ # メールのデフォルトのcharset
8
+ MAIL_CHARSET = "ISO-2022-JP"
9
+
7
10
  def initialize(env, request)
8
11
  @env = env
9
12
  @request = request
@@ -66,6 +69,29 @@ module Jpmobile::Mobile
66
69
  "UTF-8"
67
70
  end
68
71
 
72
+ # for view selector
73
+ def variants
74
+ return @_variants if @_variants
75
+
76
+ @_variants = self.class.ancestors.select {|c| c.to_s =~ /^Jpmobile/}.map do |klass|
77
+ klass = klass.to_s.
78
+ gsub(/Jpmobile::/, '').
79
+ gsub(/AbstractMobile::/, '').
80
+ gsub(/Mobile::SmartPhone/, 'smart_phone').
81
+ gsub(/::/, '_').
82
+ gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').
83
+ gsub(/([a-z\d])([A-Z])/, '\1_\2').
84
+ downcase
85
+ klass =~ /abstract/ ? "mobile" : klass
86
+ end
87
+
88
+ if @_variants.include?("smart_phone")
89
+ @_variants = @_variants.reject{|v| v == "mobile"}.map{|v| v.gsub(/mobile/, "smart_phone")}
90
+ end
91
+
92
+ @_variants
93
+ end
94
+
69
95
  # メール送信用
70
96
  def to_mail_subject(str)
71
97
  "=?#{mail_charset}?B?" + [to_mail_encoding(str)].pack('m').strip + "?="
@@ -73,8 +99,8 @@ module Jpmobile::Mobile
73
99
  def to_mail_body(str)
74
100
  to_mail_encoding(str)
75
101
  end
76
- def mail_charset
77
- "ISO-2022-JP"
102
+ def mail_charset(charset = nil)
103
+ (charset.nil? or charset == "") ? self.class::MAIL_CHARSET : charset
78
104
  end
79
105
  def to_mail_encoding(str)
80
106
  str = Jpmobile::Emoticon.unicodecr_to_external(str, Jpmobile::Emoticon::CONVERSION_TABLE_TO_PC_EMAIL, false)
@@ -90,7 +116,7 @@ module Jpmobile::Mobile
90
116
  str
91
117
  end
92
118
  end
93
- def to_mail_internal(str, val)
119
+ def to_mail_internal(str, charset)
94
120
  str
95
121
  end
96
122
  def to_mail_subject_encoded?(str)
@@ -99,6 +125,11 @@ module Jpmobile::Mobile
99
125
  def to_mail_body_encoded?(str)
100
126
  Jpmobile::Util.jis?(str)
101
127
  end
128
+ def decode_transfer_encoding(body, charset)
129
+ body = Jpmobile::Util.set_encoding(body, charset)
130
+ body = to_mail_internal(body, nil)
131
+ Jpmobile::Util.force_encode(body, charset, Jpmobile::Util::UTF8)
132
+ end
102
133
 
103
134
  # リクエストがこのクラスに属するか調べる
104
135
  # メソッド名に関して非常に不安
@@ -111,12 +111,9 @@ module Jpmobile::Mobile
111
111
  def to_mail_body(str)
112
112
  to_mail_encoding(str)
113
113
  end
114
- def mail_charset
115
- "ISO-2022-JP"
116
- end
117
114
 
118
- def to_mail_internal(str, val)
119
- if Jpmobile::Util.jis?(str) or Jpmobile::Util.ascii_8bit?(str)
115
+ def to_mail_internal(str, charset)
116
+ if Jpmobile::Util.jis?(str) or Jpmobile::Util.ascii_8bit?(str) or charset == mail_charset
120
117
  # 絵文字を数値参照に変換
121
118
  str = Jpmobile::Emoticon.external_to_unicodecr_au_mail(Jpmobile::Util.jis(str))
122
119
  str = Jpmobile::Util.jis_to_utf8(Jpmobile::Util.jis(str))
@@ -8,6 +8,8 @@ module Jpmobile::Mobile
8
8
  USER_AGENT_REGEXP = /^DoCoMo/
9
9
  # 対応するメールアドレスの正規表現
10
10
  MAIL_ADDRESS_REGEXP = /.+@docomo\.ne\.jp/
11
+ # メールのデフォルトのcharset
12
+ MAIL_CHARSET = "Shift_JIS"
11
13
 
12
14
  # オープンiエリアがあればエリアコードを +String+ で返す。無ければ +nil+ を返す。
13
15
  def areacode
@@ -102,11 +104,8 @@ module Jpmobile::Mobile
102
104
  def to_mail_body(str)
103
105
  to_external(str, nil, nil).first
104
106
  end
105
- def mail_charset
106
- "Shift_JIS"
107
- end
108
- def to_mail_internal(str, val)
109
- if Jpmobile::Util.shift_jis?(str) or Jpmobile::Util.ascii_8bit?(str)
107
+ def to_mail_internal(str, charset)
108
+ if Jpmobile::Util.shift_jis?(str) or Jpmobile::Util.ascii_8bit?(str) or charset == mail_charset
110
109
  # 絵文字を数値参照に変換
111
110
  str = Jpmobile::Emoticon.external_to_unicodecr_docomo(Jpmobile::Util.sjis(str))
112
111
  end
@@ -9,6 +9,8 @@ module Jpmobile::Mobile
9
9
  USER_AGENT_REGEXP = /^(?:SoftBank|Semulator)/
10
10
  # 対応するメールアドレスの正規表現 ディズニーモバイル対応
11
11
  MAIL_ADDRESS_REGEXP = /.+@(?:softbank\.ne\.jp|disney\.ne\.jp)/
12
+ # メールのデフォルトのcharset
13
+ MAIL_CHARSET = "Shift_JIS"
12
14
 
13
15
  # 製造番号を返す。無ければ +nil+ を返す。
14
16
  def serial_number
@@ -66,17 +68,14 @@ module Jpmobile::Mobile
66
68
  def to_mail_body(str)
67
69
  to_mail_encoding(str)
68
70
  end
69
- def mail_charset
70
- "Shift_JIS"
71
- end
72
- def to_mail_internal(str, val)
71
+ def to_mail_internal(str, charset)
73
72
  # 絵文字を数値参照に変換
74
- if Jpmobile::Util.shift_jis?(str) or Jpmobile::Util.ascii_8bit?(str)
75
- # Shift_JIS
76
- str = Jpmobile::Emoticon.external_to_unicodecr_softbank_sjis(Jpmobile::Util.sjis(str))
77
- elsif Jpmobile::Util.utf8?(str)
73
+ if Jpmobile::Util.utf8?(str) or charset == "UTF-8"
78
74
  # UTF-8
79
75
  str = Jpmobile::Emoticon.external_to_unicodecr_softbank(Jpmobile::Util.utf8(str))
76
+ elsif Jpmobile::Util.shift_jis?(str) or Jpmobile::Util.ascii_8bit?(str) or charset == mail_charset
77
+ # Shift_JIS
78
+ str = Jpmobile::Emoticon.external_to_unicodecr_softbank_sjis(Jpmobile::Util.sjis(str))
80
79
  end
81
80
 
82
81
  str
@@ -0,0 +1,40 @@
1
+ module Jpmobile
2
+ class PathSet < Array
3
+ %w(initialize << concat insert push unshift).each do |method|
4
+ class_eval <<-METHOD, __FILE__, __LINE__ + 1
5
+ def #{method}(*args)
6
+ super
7
+ typecast!
8
+ end
9
+ METHOD
10
+ end
11
+
12
+ def find(path, prefix = nil, partial = false, details = {}, key = nil)
13
+ template = find_all(path, prefix, partial, details, key).first
14
+ raise MissingTemplate.new(self, "#{prefix}/#{path}", details, partial) unless template
15
+ template
16
+ end
17
+
18
+ def find_all(*args)
19
+ each do |resolver|
20
+ templates = resolver.find_all(*args)
21
+ return templates unless templates.empty?
22
+ end
23
+ []
24
+ end
25
+
26
+ def exists?(*args)
27
+ find_all(*args).any?
28
+ end
29
+
30
+ protected
31
+
32
+ def typecast!
33
+ each_with_index do |path, i|
34
+ path = path.to_s if path.is_a?(Pathname)
35
+ next unless path.is_a?(String)
36
+ self[i] = Jpmobile::Resolver.new(path)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -37,7 +37,7 @@ module Jpmobile
37
37
  k, v = param_pair.split("=")
38
38
  k = to_internal(k) if k
39
39
  v = to_internal(v) if v
40
- new_array << "#{k}=#{v}" if k and v
40
+ new_array << "#{k}=#{v}" if k
41
41
  end
42
42
 
43
43
  new_array.join("&")
@@ -21,3 +21,27 @@ ActiveSupport.on_load(:before_configuration) do
21
21
  end
22
22
  end
23
23
  end
24
+
25
+ module Jpmobile
26
+ module ViewSelector
27
+ def self.included(base)
28
+ base.class_eval do
29
+ before_filter :register_mobile
30
+
31
+ self._view_paths = self._view_paths.dup
32
+ self.view_paths.unshift(Jpmobile::Resolver.new(File.join(Rails.root, "app/views")))
33
+ end
34
+ end
35
+
36
+ def register_mobile
37
+ if request.mobile
38
+ # register mobile
39
+ self.lookup_context.mobile = request.mobile.variants
40
+ end
41
+ end
42
+
43
+ def disable_mobile_view!
44
+ self.lookup_context.mobile = nil
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,38 @@
1
+ module Jpmobile
2
+ class Resolver < ActionView::FileSystemResolver
3
+ # EXTENSION_ORDER = [:variants, :locale, :formats, :handlers]
4
+
5
+ def find_templates(name, prefix, partial, details)
6
+ path = build_path(name, prefix, partial, details)
7
+ query(path, EXTENSION_ORDER.map { |ext| details[ext] }, details[:formats], details[:mobile])
8
+ end
9
+
10
+ def build_path(name, prefix, partial, details)
11
+ path = ""
12
+ path << "#{prefix}/" unless prefix.empty?
13
+ path << (partial ? "_#{name}" : name)
14
+ path
15
+ end
16
+
17
+ def query(path, exts, formats, mobile)
18
+ query = File.join(@path, path)
19
+ query << '{' << mobile.map {|v| "_#{v}"}.join(',') << ',}' if mobile and mobile.respond_to?(:map)
20
+
21
+ exts.each do |ext|
22
+ query << '{' << ext.map {|e| e && ".#{e}" }.join(',') << ',}'
23
+ end
24
+
25
+ query.gsub!(/\{\.html,/, "{.html,.text.html,")
26
+ query.gsub!(/\{\.text,/, "{.text,.text.plain,")
27
+
28
+ Dir[query].reject { |p| File.directory?(p) }.map do |p|
29
+ handler, format = extract_handler_and_format(p, formats)
30
+
31
+ contents = File.open(p, "rb") {|io| io.read }
32
+
33
+ ActionView::Template.new(contents, File.expand_path(p), handler,
34
+ :virtual_path => path, :format => format)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -54,29 +54,29 @@ module Jpmobile
54
54
  new_obj
55
55
  end
56
56
 
57
- def sjis(ascii_8bit)
58
- if ascii_8bit.respond_to?(:force_encoding)
59
- ascii_8bit.force_encoding(SJIS)
57
+ def sjis(str)
58
+ if str.respond_to?(:force_encoding) and !shift_jis?(str)
59
+ str.force_encoding(SJIS)
60
60
  end
61
- ascii_8bit
61
+ str
62
62
  end
63
63
 
64
- def utf8(ascii_8bit)
65
- if ascii_8bit.respond_to?(:force_encoding)
66
- ascii_8bit.force_encoding(UTF8)
64
+ def utf8(str)
65
+ if str.respond_to?(:force_encoding) and !utf8?(str)
66
+ str.force_encoding(UTF8)
67
67
  end
68
- ascii_8bit
68
+ str
69
69
  end
70
70
 
71
- def jis(ascii_8bit)
72
- if ascii_8bit.respond_to?(:force_encoding)
73
- ascii_8bit.force_encoding(JIS)
71
+ def jis(str)
72
+ if str.respond_to?(:force_encoding) and !jis?(str)
73
+ str.force_encoding(JIS)
74
74
  end
75
- ascii_8bit
75
+ str
76
76
  end
77
77
 
78
78
  def ascii_8bit(str)
79
- if str.respond_to?(:force_encoding)
79
+ if str.respond_to?(:force_encoding) and !ascii_8bit?(str)
80
80
  str.force_encoding(BINARY)
81
81
  end
82
82
  str
@@ -157,25 +157,34 @@ module Jpmobile
157
157
  jis_str = jis.kind_of?(Numeric) ? [jis].pack('n') : jis
158
158
 
159
159
  if Object.const_defined?(:Encoding)
160
- Regexp.compile(Regexp.escape(jis_str.force_encoding("stateless-ISO-2022-JP-KDDI"))) # for au only
160
+ # Regexp.compile(Regexp.escape(jis_str.force_encoding("stateless-ISO-2022-JP-KDDI"))) # for au only
161
+ Regexp.compile(Regexp.escape(jis_str.force_encoding(BINARY))) # for au only
161
162
  else
162
163
  Regexp.compile(Regexp.escape(jis_str,"j"),nil,'j')
163
164
  end
164
165
  end
165
166
 
167
+ def jis_string_regexp
168
+ Regexp.compile(Regexp.escape(ascii_8bit("\x1b\x24\x42")) + "(.+)" + Regexp.escape(ascii_8bit("\x1b\x28\x42")))
169
+ end
170
+
166
171
  def encode(str, charset)
167
172
  if Object.const_defined?(:Encoding)
168
- str.encode(charset)
173
+ (charset.nil? or charset == "" or str.nil? or str == "") ? str : str.encode(charset)
169
174
  else
170
- case charset
171
- when /iso-2022-jp/i
172
- NKF.nkf("-j", str)
173
- when /shift_jis/i
174
- NKF.nkf("-s", str)
175
- when /utf-8/i
176
- NKF.nkf("-w", str)
177
- else
175
+ if str.nil?
178
176
  str
177
+ else
178
+ case charset
179
+ when /iso-2022-jp/i
180
+ NKF.nkf("-j", str)
181
+ when /shift_jis/i
182
+ NKF.nkf("-s", str)
183
+ when /utf-8/i
184
+ NKF.nkf("-w", str)
185
+ else
186
+ str
187
+ end
179
188
  end
180
189
  end
181
190
  end
@@ -233,6 +242,7 @@ module Jpmobile
233
242
  def set_encoding(str, encoding)
234
243
  if encoding and Object.const_defined?(:Encoding)
235
244
  encoding = SJIS if encoding =~ /shift_jis/i
245
+
236
246
  str.force_encoding(encoding)
237
247
  end
238
248
 
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jpmobile
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ prerelease: true
5
5
  segments:
6
- - 0
7
6
  - 1
8
- - 6
9
- version: 0.1.6
7
+ - 0
8
+ - 0
9
+ - pre
10
+ version: 1.0.0.pre
10
11
  platform: ruby
11
12
  authors:
12
13
  - Yoji Shidara
@@ -15,7 +16,7 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2011-01-21 00:00:00 +09:00
19
+ date: 2011-01-28 00:00:00 +09:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
@@ -270,11 +271,13 @@ executables: []
270
271
  extensions: []
271
272
 
272
273
  extra_rdoc_files:
274
+ - README
273
275
  - README.rdoc
274
276
  files:
275
277
  - CHANGELOG
276
278
  - Gemfile
277
279
  - MIT-LICENSE
280
+ - README
278
281
  - README.rdoc
279
282
  - Rakefile
280
283
  - VERSION.yml
@@ -295,6 +298,8 @@ files:
295
298
  - lib/jpmobile/helpers.rb
296
299
  - lib/jpmobile/hook_action_controller.rb
297
300
  - lib/jpmobile/hook_action_view.rb
301
+ - lib/jpmobile/mail.rb
302
+ - lib/jpmobile/mailer.rb
298
303
  - lib/jpmobile/mobile/abstract_mobile.rb
299
304
  - lib/jpmobile/mobile/android.rb
300
305
  - lib/jpmobile/mobile/au.rb
@@ -307,6 +312,7 @@ files:
307
312
  - lib/jpmobile/mobile/vodafone.rb
308
313
  - lib/jpmobile/mobile/willcom.rb
309
314
  - lib/jpmobile/mobile/windows_phone.rb
315
+ - lib/jpmobile/path_set.rb
310
316
  - lib/jpmobile/position.rb
311
317
  - lib/jpmobile/rack.rb
312
318
  - lib/jpmobile/rack/filter.rb
@@ -314,6 +320,7 @@ files:
314
320
  - lib/jpmobile/rack/params_filter.rb
315
321
  - lib/jpmobile/rails.rb
316
322
  - lib/jpmobile/request_with_mobile.rb
323
+ - lib/jpmobile/resolver.rb
317
324
  - lib/jpmobile/trans_sid.rb
318
325
  - lib/jpmobile/util.rb
319
326
  - lib/tasks/jpmobile_tasks.rake
@@ -337,12 +344,14 @@ files:
337
344
  - spec/rack_helper.rb
338
345
  - spec/spec_helper.rb
339
346
  - spec/unit/detect_by_email_spec.rb
347
+ - spec/unit/emoticon_spec.rb
348
+ - spec/unit/encoding_spec.rb
340
349
  - spec/unit/is_carrier_spec.rb
350
+ - spec/unit/mail_spec.rb
351
+ - spec/unit/receive_mail_spec.rb
341
352
  - spec/unit/spec_helper.rb
342
353
  - spec/unit/util_spec.rb
343
354
  - spec/unit/valid_ip_spec.rb
344
- - test/legacy/emoticon_test.rb
345
- - test/legacy/helper.rb
346
355
  - test/rails/overrides/app/controllers/application_controller.rb
347
356
  - test/rails/overrides/app/controllers/docomo_guid_always_controller.rb
348
357
  - test/rails/overrides/app/controllers/docomo_guid_base_controller.rb
@@ -360,6 +369,8 @@ files:
360
369
  - test/rails/overrides/app/controllers/trans_sid_metal_controller.rb
361
370
  - test/rails/overrides/app/controllers/trans_sid_mobile_controller.rb
362
371
  - test/rails/overrides/app/controllers/trans_sid_none_controller.rb
372
+ - test/rails/overrides/app/models/mobile_mailer.rb
373
+ - test/rails/overrides/app/models/normal_mailer.rb
363
374
  - test/rails/overrides/app/models/user.rb
364
375
  - test/rails/overrides/autotest/discover.rb
365
376
  - test/rails/overrides/config/initializers/jpmobile_generator.rb
@@ -367,6 +378,8 @@ files:
367
378
  - test/rails/overrides/db/migrate/001_add_sessions_table.rb
368
379
  - test/rails/overrides/db/migrate/20100824062306_create_users.rb
369
380
  - test/rails/overrides/spec/helpers/helpers_spec.rb
381
+ - test/rails/overrides/spec/models/mobile_mailer_spec.rb
382
+ - test/rails/overrides/spec/models/normal_mailer_spec.rb
370
383
  - test/rails/overrides/spec/requests/docomo_guid_spec.rb
371
384
  - test/rails/overrides/spec/requests/docomo_spec.rb
372
385
  - test/rails/overrides/spec/requests/emobile_spec.rb
@@ -396,6 +409,7 @@ files:
396
409
  - test/rails/rails_root/app/controllers/trans_sid_none_controller.rb
397
410
  - test/rails/rails_root/app/helpers/application_helper.rb
398
411
  - test/rails/rails_root/app/models/mobile_mailer.rb
412
+ - test/rails/rails_root/app/models/normal_mailer.rb
399
413
  - test/rails/rails_root/app/models/user.rb
400
414
  - test/rails/rails_root/autotest/discover.rb
401
415
  - test/rails/rails_root/config/application.rb
@@ -417,6 +431,7 @@ files:
417
431
  - test/rails/rails_root/db/seeds.rb
418
432
  - test/rails/rails_root/spec/helpers/helpers_spec.rb
419
433
  - test/rails/rails_root/spec/models/mobile_mailer_spec.rb
434
+ - test/rails/rails_root/spec/models/normal_mailer_spec.rb
420
435
  - test/rails/rails_root/spec/requests/docomo_guid_spec.rb
421
436
  - test/rails/rails_root/spec/requests/docomo_spec.rb
422
437
  - test/rails/rails_root/spec/requests/emobile_spec.rb
@@ -457,9 +472,9 @@ files:
457
472
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/filter.rb
458
473
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/helpers.rb
459
474
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb
460
- - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_mailer.rb
461
475
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb
462
476
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mail.rb
477
+ - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mailer.rb
463
478
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb
464
479
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/android.rb
465
480
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb
@@ -472,6 +487,7 @@ files:
472
487
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/vodafone.rb
473
488
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/willcom.rb
474
489
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/windows_phone.rb
490
+ - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/path_set.rb
475
491
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/position.rb
476
492
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack.rb
477
493
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/filter.rb
@@ -479,6 +495,7 @@ files:
479
495
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/params_filter.rb
480
496
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rails.rb
481
497
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/request_with_mobile.rb
498
+ - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb
482
499
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/trans_sid.rb
483
500
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb
484
501
  - test/rails/rails_root/vendor/plugins/jpmobile/tmp/conversion-table.rb
@@ -523,11 +540,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
523
540
  required_rubygems_version: !ruby/object:Gem::Requirement
524
541
  none: false
525
542
  requirements:
526
- - - ">="
543
+ - - ">"
527
544
  - !ruby/object:Gem::Version
528
545
  segments:
529
- - 0
530
- version: "0"
546
+ - 1
547
+ - 3
548
+ - 1
549
+ version: 1.3.1
531
550
  requirements: []
532
551
 
533
552
  rubyforge_project:
@@ -550,12 +569,14 @@ test_files:
550
569
  - spec/rack_helper.rb
551
570
  - spec/spec_helper.rb
552
571
  - spec/unit/detect_by_email_spec.rb
572
+ - spec/unit/emoticon_spec.rb
573
+ - spec/unit/encoding_spec.rb
553
574
  - spec/unit/is_carrier_spec.rb
575
+ - spec/unit/mail_spec.rb
576
+ - spec/unit/receive_mail_spec.rb
554
577
  - spec/unit/spec_helper.rb
555
578
  - spec/unit/util_spec.rb
556
579
  - spec/unit/valid_ip_spec.rb
557
- - test/legacy/emoticon_test.rb
558
- - test/legacy/helper.rb
559
580
  - test/rails/overrides/app/controllers/application_controller.rb
560
581
  - test/rails/overrides/app/controllers/docomo_guid_always_controller.rb
561
582
  - test/rails/overrides/app/controllers/docomo_guid_base_controller.rb
@@ -573,6 +594,8 @@ test_files:
573
594
  - test/rails/overrides/app/controllers/trans_sid_metal_controller.rb
574
595
  - test/rails/overrides/app/controllers/trans_sid_mobile_controller.rb
575
596
  - test/rails/overrides/app/controllers/trans_sid_none_controller.rb
597
+ - test/rails/overrides/app/models/mobile_mailer.rb
598
+ - test/rails/overrides/app/models/normal_mailer.rb
576
599
  - test/rails/overrides/app/models/user.rb
577
600
  - test/rails/overrides/autotest/discover.rb
578
601
  - test/rails/overrides/config/initializers/jpmobile_generator.rb
@@ -580,6 +603,8 @@ test_files:
580
603
  - test/rails/overrides/db/migrate/001_add_sessions_table.rb
581
604
  - test/rails/overrides/db/migrate/20100824062306_create_users.rb
582
605
  - test/rails/overrides/spec/helpers/helpers_spec.rb
606
+ - test/rails/overrides/spec/models/mobile_mailer_spec.rb
607
+ - test/rails/overrides/spec/models/normal_mailer_spec.rb
583
608
  - test/rails/overrides/spec/requests/docomo_guid_spec.rb
584
609
  - test/rails/overrides/spec/requests/docomo_spec.rb
585
610
  - test/rails/overrides/spec/requests/emobile_spec.rb
@@ -609,6 +634,7 @@ test_files:
609
634
  - test/rails/rails_root/app/controllers/trans_sid_none_controller.rb
610
635
  - test/rails/rails_root/app/helpers/application_helper.rb
611
636
  - test/rails/rails_root/app/models/mobile_mailer.rb
637
+ - test/rails/rails_root/app/models/normal_mailer.rb
612
638
  - test/rails/rails_root/app/models/user.rb
613
639
  - test/rails/rails_root/autotest/discover.rb
614
640
  - test/rails/rails_root/config/application.rb
@@ -630,6 +656,7 @@ test_files:
630
656
  - test/rails/rails_root/db/seeds.rb
631
657
  - test/rails/rails_root/spec/helpers/helpers_spec.rb
632
658
  - test/rails/rails_root/spec/models/mobile_mailer_spec.rb
659
+ - test/rails/rails_root/spec/models/normal_mailer_spec.rb
633
660
  - test/rails/rails_root/spec/requests/docomo_guid_spec.rb
634
661
  - test/rails/rails_root/spec/requests/docomo_spec.rb
635
662
  - test/rails/rails_root/spec/requests/emobile_spec.rb
@@ -670,9 +697,9 @@ test_files:
670
697
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/filter.rb
671
698
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/helpers.rb
672
699
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb
673
- - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_mailer.rb
674
700
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb
675
701
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mail.rb
702
+ - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mailer.rb
676
703
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb
677
704
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/android.rb
678
705
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb
@@ -685,6 +712,7 @@ test_files:
685
712
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/vodafone.rb
686
713
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/willcom.rb
687
714
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/windows_phone.rb
715
+ - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/path_set.rb
688
716
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/position.rb
689
717
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack.rb
690
718
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/filter.rb
@@ -692,6 +720,7 @@ test_files:
692
720
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/params_filter.rb
693
721
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rails.rb
694
722
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/request_with_mobile.rb
723
+ - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/resolver.rb
695
724
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/trans_sid.rb
696
725
  - test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb
697
726
  - test/rails/rails_root/vendor/plugins/jpmobile/tmp/conversion-table.rb