e4u-encode 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/e4u/encode/docomo/unicode.rb +1 -1
- data/lib/e4u/encode/docomo/unicode/google_unicode.rb +287 -289
- data/lib/e4u/encode/kddi/unicode.rb +1 -1
- data/lib/e4u/encode/kddi/unicode/google_unicode.rb +1299 -654
- data/lib/e4u/encode/softbank/unicode.rb +1 -1
- data/lib/e4u/encode/softbank/unicode/google_unicode.rb +491 -492
- data/spec/docomo_spec.rb +0 -97
- data/spec/e4u_spec.rb +72 -0
- data/tasks/mk_docomo_unicode.rb +22 -12
- data/tasks/mk_kddi_unicode.rb +29 -13
- data/tasks/mk_softbank_unicode.rb +22 -12
- metadata +2 -2
data/spec/docomo_spec.rb
CHANGED
@@ -131,100 +131,3 @@ describe E4U::Encode::DoCoMo do
|
|
131
131
|
end
|
132
132
|
end
|
133
133
|
end
|
134
|
-
|
135
|
-
|
136
|
-
describe E4U do
|
137
|
-
describe E4U::Encode do
|
138
|
-
|
139
|
-
describe E4U::Encode::DoCoMo do
|
140
|
-
before :all do
|
141
|
-
@utf8_str_ary = %w(本日は 晴天 なり)
|
142
|
-
@sjis_str_ary = @utf8_str_ary.map { |e| NKF.nkf('-Wm0x --oc=CP932', e) }
|
143
|
-
|
144
|
-
@webcode = "\x1B\x24\x47\x6A\x0F"
|
145
|
-
|
146
|
-
@sun = E4U.google.find{ |e| e[:id] == '000' }
|
147
|
-
end
|
148
|
-
|
149
|
-
it "SJISなDoCoMo絵文字を、UTF-8なDoCoMo絵文字に変換できること" do
|
150
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
151
|
-
utf8 = @utf8_str_ary.join @sun.docomo_emoji.utf8
|
152
|
-
|
153
|
-
got = E4U.encode(sjis, :docomo, :sjis => :utf8)
|
154
|
-
got.should == utf8
|
155
|
-
end
|
156
|
-
|
157
|
-
it "SJISなDoCoMo絵文字を、UTF-8な数値文字参照に変換できること" do
|
158
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
159
|
-
utf8 = @utf8_str_ary.join "&#x#{@sun.docomo_emoji.unicode};"
|
160
|
-
|
161
|
-
got = E4U.encode(sjis, :docomo, :sjis => :unicode)
|
162
|
-
got.should == utf8
|
163
|
-
end
|
164
|
-
|
165
|
-
it "UTF-8なDoCoMo絵文字を、SJISなDoCoMo絵文字に変換できること" do
|
166
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
167
|
-
utf8 = @utf8_str_ary.join @sun.docomo_emoji.utf8
|
168
|
-
|
169
|
-
got = E4U.encode(utf8, :docomo, :utf8 => :sjis)
|
170
|
-
got.should == sjis
|
171
|
-
end
|
172
|
-
|
173
|
-
it "SJISなDoCoMo絵文字を、UTF-8なKDDI絵文字に変換できること" do
|
174
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
175
|
-
utf8 = @utf8_str_ary.join @sun.kddi_emoji.utf8
|
176
|
-
|
177
|
-
got = E4U.encode(sjis, :docomo => :kddi, :sjis => :utf8)
|
178
|
-
got.should == utf8
|
179
|
-
end
|
180
|
-
|
181
|
-
it "SJISなDoCoMo絵文字を、SJISなKDDI絵文字に変換できること" do
|
182
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
183
|
-
kddi = @sjis_str_ary.join @sun.kddi_emoji.sjis
|
184
|
-
|
185
|
-
got = E4U.encode(sjis, :sjis, :docomo => :kddi)
|
186
|
-
got.should == kddi
|
187
|
-
end
|
188
|
-
|
189
|
-
it "SJISなDoCoMo絵文字を、SJISなSoftbank絵文字に変換できること" do
|
190
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
191
|
-
softbank = @sjis_str_ary.join @sun.softbank_emoji.sjis
|
192
|
-
|
193
|
-
got = E4U.encode(sjis, :sjis, :docomo => :softbank)
|
194
|
-
got.should == softbank
|
195
|
-
end
|
196
|
-
|
197
|
-
it "SJISなDoCoMo絵文字を、WebcodeなSoftbank絵文字に変換できること" do
|
198
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
199
|
-
softbank = @sjis_str_ary.join @webcode
|
200
|
-
|
201
|
-
got = E4U.encode(sjis, :sjis => :webcode, :docomo => :softbank)
|
202
|
-
got.should == softbank
|
203
|
-
end
|
204
|
-
|
205
|
-
it "SJISなDoCoMo絵文字を、UTF-8なSoftbank絵文字に変換できること" do
|
206
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
207
|
-
softbank = @utf8_str_ary.join @sun.softbank_emoji.utf8
|
208
|
-
|
209
|
-
got = E4U.encode(sjis, :sjis => :utf8, :docomo => :softbank)
|
210
|
-
got.should == softbank
|
211
|
-
end
|
212
|
-
|
213
|
-
it "SJISなDoCoMo絵文字を、UTF-8なGoogle絵文字に変換できること" do
|
214
|
-
sjis = @sjis_str_ary.join @sun.docomo_emoji.sjis
|
215
|
-
google = @utf8_str_ary.join @sun.google_emoji.utf8
|
216
|
-
|
217
|
-
got = E4U.encode(sjis, :sjis => :utf8, :docomo => :google)
|
218
|
-
got.should == google
|
219
|
-
end
|
220
|
-
|
221
|
-
it "UTF-8なDoCoMo絵文字を、UTF-8なGoogle絵文字に変換できること" do
|
222
|
-
utf8 = @utf8_str_ary.join @sun.docomo_emoji.utf8
|
223
|
-
google = @utf8_str_ary.join @sun.google_emoji.utf8
|
224
|
-
|
225
|
-
got = E4U.encode(utf8, :utf8, :docomo => :google)
|
226
|
-
got.should == google
|
227
|
-
end
|
228
|
-
end
|
229
|
-
end
|
230
|
-
end
|
data/spec/e4u_spec.rb
CHANGED
@@ -167,6 +167,78 @@ describe E4U do
|
|
167
167
|
E4U.encode(@softbank, :utf8, :softbank => :docomo).should_not == @docomo
|
168
168
|
end
|
169
169
|
end
|
170
|
+
|
171
|
+
context "DoCoMoの複合絵文字" do
|
172
|
+
it "KDDIに変換できること" do
|
173
|
+
emoji = E4U.google.find{ |e| e[:docomo] =~ /\+/ && !e[:kddi].nil? }
|
174
|
+
@docomo = "#{emoji[:name]} #{emoji.docomo_emoji.utf8}"
|
175
|
+
@docomo.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
176
|
+
@kddi = "#{emoji[:name]} #{emoji.kddi_emoji.utf8}"
|
177
|
+
@kddi.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
178
|
+
|
179
|
+
E4U.encode(@docomo, :utf8, :docomo => :kddi).should == @kddi
|
180
|
+
E4U.encode(@kddi, :utf8, :kddi => :docomo).should == @docomo
|
181
|
+
end
|
182
|
+
|
183
|
+
it "Softbankに変換できること" do
|
184
|
+
emoji = E4U.google.find{ |e| e[:docomo] =~ /\+/ && !e[:softbank].nil? }
|
185
|
+
@docomo = "#{emoji[:name]} #{emoji.docomo_emoji.utf8}"
|
186
|
+
@docomo.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
187
|
+
@softbank = "#{emoji[:name]} #{emoji.softbank_emoji.utf8}"
|
188
|
+
@softbank.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
189
|
+
|
190
|
+
E4U.encode(@docomo, :utf8, :docomo => :softbank).should == @softbank
|
191
|
+
E4U.encode(@softbank, :utf8, :softbank => :docomo).should == @docomo
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
context "KDDIの複合絵文字" do
|
196
|
+
it "DoCoMoに変換できること" do
|
197
|
+
emoji = E4U.google.find{ |e| e[:kddi] =~ /\+/ && !e[:docomo].nil? }
|
198
|
+
@kddi = "#{emoji[:name]} #{emoji.kddi_emoji.utf8}"
|
199
|
+
@kddi.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
200
|
+
@docomo = "#{emoji[:name]} #{emoji.docomo_emoji.utf8}"
|
201
|
+
@docomo.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
202
|
+
|
203
|
+
E4U.encode(@kddi, :utf8, :kddi => :docomo).should == @docomo
|
204
|
+
E4U.encode(@docomo, :utf8, :docomo => :kddi).should == @kddi
|
205
|
+
end
|
206
|
+
|
207
|
+
it "Softbankに変換できること" do
|
208
|
+
emoji = E4U.google.find{ |e| e[:kddi] =~ /\+/ && !e[:softbank].nil? }
|
209
|
+
@kddi = "#{emoji[:name]} #{emoji.kddi_emoji.utf8}"
|
210
|
+
@kddi.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
211
|
+
@softbank = "#{emoji[:name]} #{emoji.softbank_emoji.utf8}"
|
212
|
+
@softbank.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
213
|
+
|
214
|
+
E4U.encode(@kddi, :utf8, :kddi => :softbank).should == @softbank
|
215
|
+
E4U.encode(@softbank, :utf8, :softbank => :kddi).should == @kddi
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
context "Softbankの複合絵文字" do
|
220
|
+
it "DoCoMoに変換できること" do
|
221
|
+
emoji = E4U.google.find{ |e| e[:softbank] =~ /\+/ && !e[:docomo].nil? }
|
222
|
+
@softbank = "#{emoji[:name]} #{emoji.softbank_emoji.utf8}"
|
223
|
+
@softbank.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
224
|
+
@docomo = "#{emoji[:name]} #{emoji.docomo_emoji.utf8}"
|
225
|
+
@docomo.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
226
|
+
|
227
|
+
E4U.encode(@softbank, :utf8, :softbank => :docomo).should == @docomo
|
228
|
+
E4U.encode(@docomo, :utf8, :docomo => :softbank).should == @softbank
|
229
|
+
end
|
230
|
+
|
231
|
+
it "KDDIに変換できること" do
|
232
|
+
emoji = E4U.google.find{ |e| e[:softbank] =~ /\+/ && !e[:kddi].nil? }
|
233
|
+
@softbank = "#{emoji[:name]} #{emoji.softbank_emoji.utf8}"
|
234
|
+
@softbank.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
235
|
+
@kddi = "#{emoji[:name]} #{emoji.kddi_emoji.utf8}"
|
236
|
+
@kddi.encode('UTF-8') if RUBY_VERSION >= '1.9.1'
|
237
|
+
|
238
|
+
E4U.encode(@softbank, :utf8, :softbank => :kddi).should == @kddi
|
239
|
+
E4U.encode(@kddi, :utf8, :kddi => :softbank).should == @softbank
|
240
|
+
end
|
241
|
+
end
|
170
242
|
end
|
171
243
|
|
172
244
|
it "detect"
|
data/tasks/mk_docomo_unicode.rb
CHANGED
@@ -2,24 +2,34 @@ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
|
|
2
2
|
module Update
|
3
3
|
class Table
|
4
4
|
def self.mk_docomo_unicode target
|
5
|
+
|
6
|
+
dat = { }
|
7
|
+
E4U.docomo.each do |e|
|
8
|
+
google = E4U.google.find{ |g| g[:docomo] == e.docomo_emoji.unicode }
|
9
|
+
docomo = e.docomo_emoji.utf8.unpack('U*').map{ |f| "&#x%04X;" % [f] }.join
|
10
|
+
dat[docomo] = google[:google].upcase
|
11
|
+
end
|
12
|
+
|
13
|
+
E4U.google.each do |e|
|
14
|
+
next unless e[:google]
|
15
|
+
next unless e[:docomo]
|
16
|
+
docomo = e.docomo_emoji.utf8.unpack('U*').map{ |f| "&#x%04X;" % [f] }.join
|
17
|
+
next if dat[docomo]
|
18
|
+
dat[docomo] = e[:google].upcase
|
19
|
+
end
|
20
|
+
|
5
21
|
File.open(target, 'wb') do |out|
|
6
|
-
out.print ERB.new(<<'ERB', nil, '-').result
|
7
|
-
module E4U
|
8
|
-
module Encode
|
9
|
-
module DoCoMo
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
22
|
+
out.print ERB.new(<<'ERB', nil, '-').result(binding)
|
13
23
|
class E4U::Encode::DoCoMo::Unicode
|
14
24
|
GOOGLE_UNICODE = {
|
15
|
-
<%
|
16
|
-
|
17
|
-
<% google = E4U.google.find{|emoji| docomo.unicode == emoji[:docomo] } -%>
|
18
|
-
'<%= docomo.unicode.upcase %>' => '<%= google[:google].upcase %>'.freeze,
|
25
|
+
<% dat.sort.each do |k,v| -%>
|
26
|
+
'<%= k %>' => '&#x<%= v %>;'.freeze,
|
19
27
|
<% end -%>
|
20
28
|
}.freeze
|
21
29
|
|
22
|
-
GOOGLE_UNICODE_REGEXP = Regexp.new(
|
30
|
+
GOOGLE_UNICODE_REGEXP = Regexp.new(GOOGLE_UNICODE.keys.sort_by{ |k| -k.size }.map do |ncr|
|
31
|
+
"(?:" + ncr.gsub(/&#x(....);/){ "&#x(?i:#{$1});" } + ")"
|
32
|
+
end.join('|')).freeze
|
23
33
|
end
|
24
34
|
ERB
|
25
35
|
end
|
data/tasks/mk_kddi_unicode.rb
CHANGED
@@ -2,26 +2,42 @@ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
|
|
2
2
|
module Update
|
3
3
|
class Table
|
4
4
|
def self.mk_kddi_unicode target
|
5
|
+
|
6
|
+
dat = { }
|
7
|
+
E4U.kddi.each do |e|
|
8
|
+
google = E4U.google.find{ |g| g[:kddi] == e.kddi_emoji.unicode }
|
9
|
+
kddi = e.kddi_emoji.utf8.unpack('U*').map{ |f| "&#x%04X;" % [f] }.join
|
10
|
+
dat[kddi] = google[:google].upcase
|
11
|
+
kddi = e.kddiweb_emoji.utf8.unpack('U*').map{ |f| "&#x%04X;" % [f] }.join
|
12
|
+
dat[kddi] = google[:google].upcase
|
13
|
+
end
|
14
|
+
|
15
|
+
E4U.google.each do |e|
|
16
|
+
next unless e[:google]
|
17
|
+
next unless e[:kddi]
|
18
|
+
kddi = e.kddi_emoji.utf8.unpack('U*').map{ |f| "&#x%04X;" % [f] }.join
|
19
|
+
unless dat[kddi]
|
20
|
+
dat[kddi] = e[:google].upcase
|
21
|
+
end
|
22
|
+
kddi = e.kddiweb_emoji.utf8.unpack('U*').map{ |f| "&#x%04X;" % [f] }.join
|
23
|
+
unless dat[kddi]
|
24
|
+
dat[kddi] = e[:google].upcase
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
5
28
|
File.open(target, 'wb') do |out|
|
6
|
-
out.print ERB.new(<<'ERB', nil, '-').result
|
29
|
+
out.print ERB.new(<<'ERB', nil, '-').result(binding)
|
7
30
|
require 'e4u/encode/docomo/unicode/google_unicode'
|
8
|
-
module E4U
|
9
|
-
module Encode
|
10
|
-
module KDDI
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
31
|
class E4U::Encode::KDDI::Unicode
|
15
32
|
GOOGLE_UNICODE = {
|
16
|
-
<%
|
17
|
-
|
18
|
-
<% kddiweb = e.kddiweb_emoji -%>
|
19
|
-
<% google = E4U.google.find{|emoji| kddi.unicode == emoji[:kddi] } -%>
|
20
|
-
'<%= kddiweb.unicode.upcase %>' => '<%= google[:google].upcase %>'.freeze,
|
33
|
+
<% dat.sort.each do |k,v| -%>
|
34
|
+
'<%= k %>' => '&#x<%= v %>;'.freeze,
|
21
35
|
<% end -%>
|
22
36
|
}.merge(E4U::Encode::DoCoMo::Unicode::GOOGLE_UNICODE).freeze
|
23
37
|
|
24
|
-
GOOGLE_UNICODE_REGEXP = Regexp.new(
|
38
|
+
GOOGLE_UNICODE_REGEXP = Regexp.new(GOOGLE_UNICODE.keys.sort_by{ |k| -k.size }.map do |ncr|
|
39
|
+
"(?:" + ncr.gsub(/&#x(....);/){ "&#x(?i:#{$1});" } + ")"
|
40
|
+
end.join('|')).freeze
|
25
41
|
end
|
26
42
|
ERB
|
27
43
|
end
|
@@ -2,24 +2,34 @@ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
|
|
2
2
|
module Update
|
3
3
|
class Table
|
4
4
|
def self.mk_softbank_unicode target
|
5
|
+
|
6
|
+
dat = { }
|
7
|
+
E4U.softbank.each do |e|
|
8
|
+
google = E4U.google.find{ |g| g[:softbank] == e.softbank_emoji.unicode }
|
9
|
+
softbank = e.softbank_emoji.utf8.unpack('U*').map{ |f| "&#x%04X;" % [f] }.join
|
10
|
+
dat[softbank] = google[:google].upcase
|
11
|
+
end
|
12
|
+
|
13
|
+
E4U.google.each do |e|
|
14
|
+
next unless e[:google]
|
15
|
+
next unless e[:softbank]
|
16
|
+
softbank = e.softbank_emoji.utf8.unpack('U*').map{ |f| "&#x%04X;" % [f] }.join
|
17
|
+
next if dat[softbank]
|
18
|
+
dat[softbank] = e[:google].upcase
|
19
|
+
end
|
20
|
+
|
5
21
|
File.open(target, 'wb') do |out|
|
6
|
-
out.print ERB.new(<<'ERB', nil, '-').result
|
7
|
-
module E4U
|
8
|
-
module Encode
|
9
|
-
module Softbank
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
22
|
+
out.print ERB.new(<<'ERB', nil, '-').result(binding)
|
13
23
|
class E4U::Encode::Softbank::Unicode
|
14
24
|
GOOGLE_UNICODE = {
|
15
|
-
<%
|
16
|
-
|
17
|
-
<% google = E4U.google.find{|emoji| softbank.unicode == emoji[:softbank] } -%>
|
18
|
-
'<%= softbank.unicode.upcase %>' => '<%= google[:google].upcase %>'.freeze,
|
25
|
+
<% dat.sort.each do |k,v| -%>
|
26
|
+
'<%= k %>' => '&#x<%= v %>;'.freeze,
|
19
27
|
<% end -%>
|
20
28
|
}.freeze
|
21
29
|
|
22
|
-
GOOGLE_UNICODE_REGEXP = Regexp.new(
|
30
|
+
GOOGLE_UNICODE_REGEXP = Regexp.new(GOOGLE_UNICODE.keys.sort_by{ |k| -k.size }.map do |ncr|
|
31
|
+
"(?:" + ncr.gsub(/&#x(....);/){ "&#x(?i:#{$1});" } + ")"
|
32
|
+
end.join('|')).freeze
|
23
33
|
end
|
24
34
|
ERB
|
25
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: e4u-encode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fistfvck
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-12 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|