jpmobile 2.0.8 → 2.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,6 +19,7 @@ describe Jpmobile::Rack::MobileCarrier do
19
19
  [ Jpmobile::Mobile::Iphone , 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; ja-jp) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16' ],
20
20
  [ Jpmobile::Mobile::Android , 'Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEriccsonSO-01B Build/R1EA018) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1' ],
21
21
  [ Jpmobile::Mobile::WindowsPhone , 'Mozilla/4.0 (Compatible; MSIE 6.0; Windows NT 5.1 T-01A_6.5; Windows Phone 6.5)' ],
22
+ [ Jpmobile::Mobile::BlackBerry, 'BlackBerry9000/4.6.0.224 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/220' ],
22
23
  [ Jpmobile::Mobile::Ipad , 'Mozilla/5.0 (iPad; U; CPU OS 4_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8F191 Safari/6533.18.5'],
23
24
  [ Jpmobile::Mobile::AndroidTablet, 'Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-01C Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'],
24
25
  [ Jpmobile::Mobile::AndroidTablet, 'Mozilla/5.0 (Linux; U; Android 3.2; ja-jp; Sony Tablet S Build/THMAS11002) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13'],
@@ -30,6 +30,38 @@ describe Jpmobile::Emoticon do
30
30
  Jpmobile::Emoticon::unicodecr_to_external("", Jpmobile::Emoticon::CONVERSION_TABLE_TO_SOFTBANK, true).should == [0xe04a, 0xe049].pack('U*')
31
31
  end
32
32
  end
33
+
34
+ it 'should convert docomo unicodecr to Unicode 6.0 emoticon' do
35
+ Jpmobile::Emoticon.unicodecr_to_external("", Jpmobile::Emoticon::CONVERSION_TABLE_TO_UNICODE_EMOTICON, false).should == [0x2600].pack('U')
36
+ end
37
+
38
+ it 'should convert au unicodecr to Unicode 6.0 emoticon' do
39
+ Jpmobile::Emoticon.unicodecr_to_external("", Jpmobile::Emoticon::CONVERSION_TABLE_TO_UNICODE_EMOTICON, false).should == [0x26C5].pack('U')
40
+ end
41
+
42
+ it 'should convert Softbank unicodecr to Unicode 6.0 emoticon' do
43
+ Jpmobile::Emoticon.unicodecr_to_external("", Jpmobile::Emoticon::CONVERSION_TABLE_TO_UNICODE_EMOTICON, false).should == [0x1F466].pack('U')
44
+ end
45
+
46
+ it 'should not convert 〓' do
47
+ Jpmobile::Emoticon.unicodecr_to_external("〓", Jpmobile::Emoticon::CONVERSION_TABLE_TO_UNICODE_EMOTICON, false).should == '〓'
48
+ end
49
+
50
+ it 'should convert docomo unicodecr to Google emoticon' do
51
+ Jpmobile::Emoticon.unicodecr_to_external("", Jpmobile::Emoticon::CONVERSION_TABLE_TO_GOOGLE_EMOTICON, false).should == [0xFE000].pack('U')
52
+ end
53
+
54
+ it 'should convert au unicodecr to Google emoticon' do
55
+ Jpmobile::Emoticon.unicodecr_to_external("", Jpmobile::Emoticon::CONVERSION_TABLE_TO_GOOGLE_EMOTICON, false).should == [0xFE00F].pack('U')
56
+ end
57
+
58
+ it 'should convert Softbank unicodecr to Google emoticon' do
59
+ Jpmobile::Emoticon.unicodecr_to_external("", Jpmobile::Emoticon::CONVERSION_TABLE_TO_GOOGLE_EMOTICON, false).should == [0xFE19B].pack('U')
60
+ end
61
+
62
+ it 'should not convert 〓' do
63
+ Jpmobile::Emoticon.unicodecr_to_external("〓", Jpmobile::Emoticon::CONVERSION_TABLE_TO_GOOGLE_EMOTICON, false).should == '〓'
64
+ end
33
65
  end
34
66
 
35
67
  describe "unicodecr_to_utf8" do
@@ -70,6 +102,34 @@ describe Jpmobile::Emoticon do
70
102
  it "should not convert docomo encoding of koukai-sjis emoticons to unicodecr" do
71
103
  Jpmobile::Emoticon::external_to_unicodecr_docomo(sjis("\x8c\xf6\x8a\x4a")).should == sjis("\x8c\xf6\x8a\x4a")
72
104
  end
105
+
106
+ context 'at iPhone emoticon' do
107
+ it 'should convert iPhone Unicode emoticon to SoftBank emoticon' do
108
+ Jpmobile::Emoticon::external_to_unicodecr_unicode60("\342\230\200").should == ""
109
+ end
110
+
111
+ it 'should convert iPhone Unicode emoticon to multi SoftBank emoticons' do
112
+ Jpmobile::Emoticon::external_to_unicodecr_unicode60("\342\233\205").should == ","
113
+ end
114
+
115
+ it 'should not convert 〓' do
116
+ Jpmobile::Emoticon::external_to_unicodecr_unicode60('〓').should == "〓"
117
+ end
118
+ end
119
+
120
+ context 'at Android emoticon' do
121
+ it 'should convert Android Google Unicode emoticon to Docomo emoticon' do
122
+ Jpmobile::Emoticon::external_to_unicodecr_google("\363\276\200\200").should == ""
123
+ end
124
+
125
+ it 'should convert Android Google Unicode emoticon to multi Docomo emoticon' do
126
+ Jpmobile::Emoticon::external_to_unicodecr_google("\363\276\200\217").should == ""
127
+ end
128
+
129
+ it 'should not convert 〓' do
130
+ Jpmobile::Emoticon::external_to_unicodecr_google('〓').should == "〓"
131
+ end
132
+ end
73
133
  end
74
134
 
75
135
  context "for email" do
@@ -108,4 +108,28 @@ describe Jpmobile::Util do
108
108
  ascii_8bit(utf8_to_jis("\xef\xbd\x9e")).should == ascii_8bit("\x1b\x24\x42\x21\x41\x1b\x28\x42")
109
109
  ascii_8bit(encode("\xef\xbd\x9e", "ISO-2022-JP")).should == ascii_8bit("\x1b\x24\x42\x21\x41\x1b\x28\x42")
110
110
  end
111
+
112
+ describe 'invert_table' do
113
+ it 'pickups the first(least) of duplicated values when inverting hash table' do
114
+ hash = invert_table({
115
+ 0xFE009 => 0xE63E,
116
+ 0xFE00A => 0xE63E,
117
+ 0xFE00B => 0x3013,
118
+ 0xFE010 => 0xE6B3,
119
+ 0xFE038 => 0xE73F})
120
+ hash[0xE63E].should == 0xFE009
121
+ hash[0x3013].should == 0xFE00B
122
+ end
123
+
124
+ it 'should not raise error when hash has Array keys' do
125
+ hash = invert_table({
126
+ [0x1F1E8, 0x1F1F3] => 0x3013,
127
+ 0x1F1FF => 0x3013,
128
+ 0x1F526 => 0xE6FB,
129
+ [0x0023, 0x20E3] => 0xE6E0,
130
+ 0x1F354 => 0xE673})
131
+ hash[0x3013].should == [0x1F1E8, 0x1F1F3]
132
+ hash[0xE6FB].should == 0x1F526
133
+ end
134
+ end
111
135
  end
@@ -1,6 +1,6 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'rails', '~> 3.1.4'
3
+ gem 'rails', '~> 3.1.8'
4
4
  gem 'mail', '~> 2.3.0'
5
5
 
6
6
  # Bundle edge Rails instead:
data/tools/e4u_conv.rb ADDED
@@ -0,0 +1,122 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'nokogiri'
3
+ require 'scanf'
4
+ require 'pp'
5
+
6
+ xml = Nokogiri::XML(open(File.join(File.dirname(__FILE__), 'emoji4unicode.xml')).read)
7
+
8
+ google_docomo = []
9
+ google_kddi = []
10
+ google_softbank = []
11
+ unicode_docomo = []
12
+ unicode_kddi = []
13
+ unicode_softbank = []
14
+
15
+ xml.xpath('//e').each do |emoji|
16
+ # keycode
17
+ google = emoji.attributes['google'].value rescue nil
18
+ unicode = emoji.attributes['unicode'].value rescue nil
19
+
20
+ # carrier code
21
+ docomo = emoji.attributes['docomo'].value rescue '3013'
22
+ softbank = emoji.attributes['softbank'].value rescue '3013'
23
+ kddi = emoji.attributes['kddi'].value rescue '3013'
24
+
25
+ # fix google key
26
+ google = nil if google and google.match(/[^0-9a-fA-F\+]/)
27
+ # fix unicode key
28
+ if unicode
29
+ if unicode.match(/\+/)
30
+ unicodes = unicode.split(/\+/).delete_if{|e| e.strip == ''}
31
+ if unicodes.size == 1
32
+ unicode = '0x%s' % unicodes.first
33
+ else
34
+ unicode = '[' + unicodes.map{|e| '0x%s' % e.gsub(/[^0-9a-fA-F\+]/, '')}.join(', ') + ']'
35
+ end
36
+ else
37
+ unicode = '0x%s' % unicode
38
+ end
39
+ end
40
+
41
+ # fix docomo code
42
+ if docomo.match(/\+/)
43
+ docomo = '"' + docomo.split('+').map{|e| '&#x%s;' % e.gsub(/[^0-9a-fA-F\+]/, '')}.join('') + '"'
44
+ else
45
+ docomo = '0x%s' % docomo.gsub(/[^0-9a-fA-F]/, '')
46
+ end
47
+ # fix softbank code
48
+ if softbank.match(/\+/)
49
+ softbank = '"' + softbank.split('+').delete_if{|e| e.strip == ''}.map{|s| '&#x%X;' % (s.gsub(/[^0-9a-fA-F\+]/, '').scanf("%x").first + 0x1000)}.join('') + '"'
50
+ else
51
+ if softbank.match(/3013/)
52
+ softbank = '0x%s' % softbank
53
+ else
54
+ softbank = '0x%X' % (softbank.gsub(/[^0-9a-fA-F]/, '').scanf('%x').first + 0x1000)
55
+ end
56
+ end
57
+ # fix kddi code
58
+ if kddi.match(/\+/)
59
+ kddi = '"' + kddi.split('+').map{|e| '&#x%s;' % e.gsub(/[^0-9a-fA-F\+]/, '')}.join('') + '"'
60
+ else
61
+ kddi = '0x%s' % kddi.gsub(/[^0-9a-fA-F]/, '')
62
+ end
63
+
64
+ if google
65
+ google_docomo << [google, docomo]
66
+ google_kddi << [google, kddi]
67
+ google_softbank << [google, softbank]
68
+ end
69
+
70
+ if unicode
71
+ # Unicode 絵文字は SoftBank に寄せる
72
+ unicode_docomo << [unicode, docomo]
73
+ unicode_kddi << [unicode, kddi]
74
+ unicode_softbank << [unicode, softbank]
75
+ end
76
+ end
77
+
78
+ google_emoji_rb = open(File.join(File.dirname(__FILE__), '/../lib/jpmobile/emoticon/google.rb'), 'w') do |f|
79
+ # docomo
80
+ f.puts 'Jpmobile::Emoticon::GOOGLE_TO_DOCOMO_UNICODE = {'
81
+ google_docomo.each do |google, docomo|
82
+ f.puts " 0x%s => %s," % [google, docomo]
83
+ end
84
+ f.puts '}'
85
+
86
+ # kddi
87
+ f.puts 'Jpmobile::Emoticon::GOOGLE_TO_AU_UNICODE = {'
88
+ google_kddi.each do |google, kddi|
89
+ f.puts " 0x%s => %s," % [google, kddi]
90
+ end
91
+ f.puts '}'
92
+
93
+ # softbank
94
+ f.puts 'Jpmobile::Emoticon::GOOGLE_TO_SOFTBANK_UNICODE = {'
95
+ google_softbank.each do |google, softbank|
96
+ f.puts " 0x%s => %s," % [google, softbank]
97
+ end
98
+ f.puts '}'
99
+ end
100
+
101
+ unicode_emoji_rb = open(File.join(File.dirname(__FILE__), '/../lib/jpmobile/emoticon/unicode.rb'), 'w') do |f|
102
+ # docomo
103
+ f.puts 'Jpmobile::Emoticon::UNICODE_TO_DOCOMO_UNICODE = {'
104
+ unicode_docomo.each do |unicode, docomo|
105
+ f.puts " %s => %s," % [unicode, docomo]
106
+ end
107
+ f.puts '}'
108
+
109
+ # docomo
110
+ f.puts 'Jpmobile::Emoticon::UNICODE_TO_AU_UNICODE = {'
111
+ unicode_kddi.each do |unicode, kddi|
112
+ f.puts " %s => %s," % [unicode, kddi]
113
+ end
114
+ f.puts '}'
115
+
116
+ # softbank
117
+ f.puts 'Jpmobile::Emoticon::UNICODE_TO_SOFTBANK_UNICODE = {'
118
+ unicode_softbank.each do |unicode, softbank|
119
+ f.puts " %s => %s," % [unicode, softbank]
120
+ end
121
+ f.puts '}'
122
+ end
metadata CHANGED
@@ -1,311 +1,313 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jpmobile
3
- version: !ruby/object:Gem::Version
4
- hash: 31
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.9
5
5
  prerelease:
6
- segments:
7
- - 2
8
- - 0
9
- - 8
10
- version: 2.0.8
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Yoji Shidara
14
9
  - Shin-ichiro OGAWA
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2012-05-16 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
13
+ date: 2012-08-10 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: mail
17
+ requirement: !ruby/object:Gem::Requirement
23
18
  none: false
24
- requirements:
19
+ requirements:
25
20
  - - ~>
26
- - !ruby/object:Gem::Version
27
- hash: 3
28
- segments:
29
- - 2
30
- - 3
31
- - 0
21
+ - !ruby/object:Gem::Version
32
22
  version: 2.3.0
33
- prerelease: false
34
- name: mail
35
23
  type: :development
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
47
24
  prerelease: false
48
- name: jeweler
49
- type: :development
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- requirement: &id003 !ruby/object:Gem::Requirement
25
+ version_requirements: !ruby/object:Gem::Requirement
53
26
  none: false
54
- requirements:
27
+ requirements:
55
28
  - - ~>
56
- - !ruby/object:Gem::Version
57
- hash: 11
58
- segments:
59
- - 3
60
- - 1
61
- - 4
62
- version: 3.1.4
29
+ - !ruby/object:Gem::Version
30
+ version: 2.3.0
31
+ - !ruby/object:Gem::Dependency
32
+ name: jeweler
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
63
40
  prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
64
48
  name: rails
65
- type: :development
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
69
50
  none: false
70
- requirements:
51
+ requirements:
71
52
  - - ~>
72
- - !ruby/object:Gem::Version
73
- hash: 47
74
- segments:
75
- - 2
76
- - 8
77
- - 0
78
- version: 2.8.0
53
+ - !ruby/object:Gem::Version
54
+ version: 3.1.8
55
+ type: :development
79
56
  prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 3.1.8
63
+ - !ruby/object:Gem::Dependency
80
64
  name: rspec
81
- type: :development
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- requirement: &id005 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
85
66
  none: false
86
- requirements:
67
+ requirements:
87
68
  - - ~>
88
- - !ruby/object:Gem::Version
89
- hash: 47
90
- segments:
91
- - 2
92
- - 8
93
- - 0
69
+ - !ruby/object:Gem::Version
94
70
  version: 2.8.0
71
+ type: :development
95
72
  prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 2.8.0
79
+ - !ruby/object:Gem::Dependency
96
80
  name: rspec-rails
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 2.8.0
97
87
  type: :development
98
- version_requirements: *id005
99
- - !ruby/object:Gem::Dependency
100
- requirement: &id006 !ruby/object:Gem::Requirement
101
- none: false
102
- requirements:
103
- - - ">="
104
- - !ruby/object:Gem::Version
105
- hash: 3
106
- segments:
107
- - 0
108
- version: "0"
109
88
  prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 2.8.0
95
+ - !ruby/object:Gem::Dependency
110
96
  name: webrat
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
111
103
  type: :development
112
- version_requirements: *id006
113
- - !ruby/object:Gem::Dependency
114
- requirement: &id007 !ruby/object:Gem::Requirement
115
- none: false
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- hash: 3
120
- segments:
121
- - 0
122
- version: "0"
123
104
  prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
124
112
  name: geokit
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
125
119
  type: :development
126
- version_requirements: *id007
127
- - !ruby/object:Gem::Dependency
128
- requirement: &id008 !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- hash: 3
134
- segments:
135
- - 0
136
- version: "0"
137
120
  prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
138
128
  name: sqlite3-ruby
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
139
135
  type: :development
140
- version_requirements: *id008
141
- - !ruby/object:Gem::Dependency
142
- requirement: &id009 !ruby/object:Gem::Requirement
143
- none: false
144
- requirements:
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- hash: 3
148
- segments:
149
- - 0
150
- version: "0"
151
136
  prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
152
144
  name: hpricot
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
153
151
  type: :development
154
- version_requirements: *id009
155
- - !ruby/object:Gem::Dependency
156
- requirement: &id010 !ruby/object:Gem::Requirement
157
- none: false
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- hash: 3
162
- segments:
163
- - 3
164
- - 1
165
- - 0
166
- version: 3.1.0
167
152
  prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
168
160
  name: rails
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: 3.1.0
169
167
  type: :development
170
- version_requirements: *id010
171
- - !ruby/object:Gem::Dependency
172
- requirement: &id011 !ruby/object:Gem::Requirement
173
- none: false
174
- requirements:
175
- - - ">="
176
- - !ruby/object:Gem::Version
177
- hash: 1
178
- segments:
179
- - 1
180
- - 5
181
- - 1
182
- version: 1.5.1
183
168
  prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: 3.1.0
175
+ - !ruby/object:Gem::Dependency
184
176
  name: jeweler
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: 1.5.1
185
183
  type: :development
186
- version_requirements: *id011
187
- - !ruby/object:Gem::Dependency
188
- requirement: &id012 !ruby/object:Gem::Requirement
189
- none: false
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- hash: 23
194
- segments:
195
- - 2
196
- - 6
197
- - 0
198
- version: 2.6.0
199
184
  prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: 1.5.1
191
+ - !ruby/object:Gem::Dependency
200
192
  name: rspec
201
- type: :development
202
- version_requirements: *id012
203
- - !ruby/object:Gem::Dependency
204
- requirement: &id013 !ruby/object:Gem::Requirement
205
- none: false
206
- requirements:
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- hash: 23
210
- segments:
211
- - 2
212
- - 6
213
- - 0
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
214
198
  version: 2.6.0
199
+ type: :development
215
200
  prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ! '>='
205
+ - !ruby/object:Gem::Version
206
+ version: 2.6.0
207
+ - !ruby/object:Gem::Dependency
216
208
  name: rspec-rails
209
+ requirement: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: 2.6.0
217
215
  type: :development
218
- version_requirements: *id013
219
- - !ruby/object:Gem::Dependency
220
- requirement: &id014 !ruby/object:Gem::Requirement
221
- none: false
222
- requirements:
223
- - - ">="
224
- - !ruby/object:Gem::Version
225
- hash: 7
226
- segments:
227
- - 0
228
- - 7
229
- - 2
230
- version: 0.7.2
231
216
  prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: 2.6.0
223
+ - !ruby/object:Gem::Dependency
232
224
  name: webrat
225
+ requirement: !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: 0.7.2
233
231
  type: :development
234
- version_requirements: *id014
235
- - !ruby/object:Gem::Dependency
236
- requirement: &id015 !ruby/object:Gem::Requirement
237
- none: false
238
- requirements:
239
- - - ">="
240
- - !ruby/object:Gem::Version
241
- hash: 3
242
- segments:
243
- - 1
244
- - 5
245
- - 0
246
- version: 1.5.0
247
232
  prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ none: false
235
+ requirements:
236
+ - - ! '>='
237
+ - !ruby/object:Gem::Version
238
+ version: 0.7.2
239
+ - !ruby/object:Gem::Dependency
248
240
  name: geokit
241
+ requirement: !ruby/object:Gem::Requirement
242
+ none: false
243
+ requirements:
244
+ - - ! '>='
245
+ - !ruby/object:Gem::Version
246
+ version: 1.5.0
249
247
  type: :development
250
- version_requirements: *id015
251
- - !ruby/object:Gem::Dependency
252
- requirement: &id016 !ruby/object:Gem::Requirement
253
- none: false
254
- requirements:
255
- - - ">="
256
- - !ruby/object:Gem::Version
257
- hash: 31
258
- segments:
259
- - 1
260
- - 3
261
- - 2
262
- version: 1.3.2
263
248
  prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ none: false
251
+ requirements:
252
+ - - ! '>='
253
+ - !ruby/object:Gem::Version
254
+ version: 1.5.0
255
+ - !ruby/object:Gem::Dependency
264
256
  name: sqlite3-ruby
257
+ requirement: !ruby/object:Gem::Requirement
258
+ none: false
259
+ requirements:
260
+ - - ! '>='
261
+ - !ruby/object:Gem::Version
262
+ version: 1.3.2
265
263
  type: :development
266
- version_requirements: *id016
267
- - !ruby/object:Gem::Dependency
268
- requirement: &id017 !ruby/object:Gem::Requirement
269
- none: false
270
- requirements:
271
- - - ">="
272
- - !ruby/object:Gem::Version
273
- hash: 57
274
- segments:
275
- - 0
276
- - 8
277
- - 3
278
- version: 0.8.3
279
264
  prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ none: false
267
+ requirements:
268
+ - - ! '>='
269
+ - !ruby/object:Gem::Version
270
+ version: 1.3.2
271
+ - !ruby/object:Gem::Dependency
280
272
  name: hpricot
273
+ requirement: !ruby/object:Gem::Requirement
274
+ none: false
275
+ requirements:
276
+ - - ! '>='
277
+ - !ruby/object:Gem::Version
278
+ version: 0.8.3
281
279
  type: :development
282
- version_requirements: *id017
283
- - !ruby/object:Gem::Dependency
284
- requirement: &id018 !ruby/object:Gem::Requirement
285
- none: false
286
- requirements:
287
- - - ">="
288
- - !ruby/object:Gem::Version
289
- hash: 21
290
- segments:
291
- - 1
292
- - 2
293
- - 5
294
- version: 1.2.5
295
280
  prerelease: false
281
+ version_requirements: !ruby/object:Gem::Requirement
282
+ none: false
283
+ requirements:
284
+ - - ! '>='
285
+ - !ruby/object:Gem::Version
286
+ version: 0.8.3
287
+ - !ruby/object:Gem::Dependency
296
288
  name: git
289
+ requirement: !ruby/object:Gem::Requirement
290
+ none: false
291
+ requirements:
292
+ - - ! '>='
293
+ - !ruby/object:Gem::Version
294
+ version: 1.2.5
297
295
  type: :development
298
- version_requirements: *id018
296
+ prerelease: false
297
+ version_requirements: !ruby/object:Gem::Requirement
298
+ none: false
299
+ requirements:
300
+ - - ! '>='
301
+ - !ruby/object:Gem::Version
302
+ version: 1.2.5
299
303
  description: A Rails plugin for Japanese mobile-phones
300
304
  email: dara@shidara.net
301
305
  executables: []
302
-
303
306
  extensions: []
304
-
305
- extra_rdoc_files:
307
+ extra_rdoc_files:
306
308
  - README
307
309
  - README.rdoc
308
- files:
310
+ files:
309
311
  - .rspec
310
312
  - CHANGELOG
311
313
  - Gemfile
@@ -325,7 +327,9 @@ files:
325
327
  - lib/jpmobile/emoticon/au.rb
326
328
  - lib/jpmobile/emoticon/conversion_table.rb
327
329
  - lib/jpmobile/emoticon/docomo.rb
330
+ - lib/jpmobile/emoticon/google.rb
328
331
  - lib/jpmobile/emoticon/softbank.rb
332
+ - lib/jpmobile/emoticon/unicode.rb
329
333
  - lib/jpmobile/emoticon/z_combine.rb
330
334
  - lib/jpmobile/encoding.rb
331
335
  - lib/jpmobile/filter.rb
@@ -341,14 +345,17 @@ files:
341
345
  - lib/jpmobile/mobile/android.rb
342
346
  - lib/jpmobile/mobile/android_tablet.rb
343
347
  - lib/jpmobile/mobile/au.rb
348
+ - lib/jpmobile/mobile/black_berry.rb
344
349
  - lib/jpmobile/mobile/ddipocket.rb
345
350
  - lib/jpmobile/mobile/docomo.rb
346
351
  - lib/jpmobile/mobile/emobile.rb
352
+ - lib/jpmobile/mobile/google_emoticon.rb
347
353
  - lib/jpmobile/mobile/ipad.rb
348
354
  - lib/jpmobile/mobile/iphone.rb
349
355
  - lib/jpmobile/mobile/smart_phone.rb
350
356
  - lib/jpmobile/mobile/softbank.rb
351
357
  - lib/jpmobile/mobile/tablet.rb
358
+ - lib/jpmobile/mobile/unicode_emoticon.rb
352
359
  - lib/jpmobile/mobile/vodafone.rb
353
360
  - lib/jpmobile/mobile/willcom.rb
354
361
  - lib/jpmobile/mobile/windows_phone.rb
@@ -369,6 +376,7 @@ files:
369
376
  - lib/tasks/jpmobile_tasks.rake
370
377
  - spec/rack/jpmobile/android_spec.rb
371
378
  - spec/rack/jpmobile/au_spec.rb
379
+ - spec/rack/jpmobile/black_berry_spec.rb
372
380
  - spec/rack/jpmobile/docomo_spec.rb
373
381
  - spec/rack/jpmobile/emoticon_spec.rb
374
382
  - spec/rack/jpmobile/filter_spec.rb
@@ -523,6 +531,7 @@ files:
523
531
  - test/sinatra/test/filter_test.rb
524
532
  - test/sinatra/views/index.erb
525
533
  - test/sinatra/views/index_mobile.erb
534
+ - tools/e4u_conv.rb
526
535
  - tools/emoji/genregexp.rb
527
536
  - tools/generate_au_emoticon_table.rb
528
537
  - tools/generate_docomo_emoticon_table.rb
@@ -531,36 +540,26 @@ files:
531
540
  - tools/list_gps_unsupported_au.rb
532
541
  homepage: http://jpmobile-rails.org
533
542
  licenses: []
534
-
535
543
  post_install_message:
536
544
  rdoc_options: []
537
-
538
- require_paths:
545
+ require_paths:
539
546
  - lib
540
- required_ruby_version: !ruby/object:Gem::Requirement
547
+ required_ruby_version: !ruby/object:Gem::Requirement
541
548
  none: false
542
- requirements:
543
- - - ">="
544
- - !ruby/object:Gem::Version
545
- hash: 3
546
- segments:
547
- - 0
548
- version: "0"
549
- required_rubygems_version: !ruby/object:Gem::Requirement
549
+ requirements:
550
+ - - ! '>='
551
+ - !ruby/object:Gem::Version
552
+ version: '0'
553
+ required_rubygems_version: !ruby/object:Gem::Requirement
550
554
  none: false
551
- requirements:
552
- - - ">="
553
- - !ruby/object:Gem::Version
554
- hash: 3
555
- segments:
556
- - 0
557
- version: "0"
555
+ requirements:
556
+ - - ! '>='
557
+ - !ruby/object:Gem::Version
558
+ version: '0'
558
559
  requirements: []
559
-
560
560
  rubyforge_project:
561
561
  rubygems_version: 1.8.24
562
562
  signing_key:
563
563
  specification_version: 3
564
564
  summary: A Rails plugin for Japanese mobile-phones
565
565
  test_files: []
566
-