e4u-encode 0.0.0 → 0.0.1
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/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
|