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/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"
@@ -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
- <% E4U.docomo.each do |e| -%>
16
- <% docomo = e.docomo_emoji -%>
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("&#x((?i:#{GOOGLE_UNICODE.keys.join('|')}));").freeze
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
@@ -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
- <% E4U.kddi.each do |e| -%>
17
- <% kddi = e.kddi_emoji -%>
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("&#x((?i:#{GOOGLE_UNICODE.keys.join('|')}));").freeze
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
- <% E4U.softbank.each do |e| -%>
16
- <% softbank = e.softbank_emoji -%>
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("&#x((?i:#{GOOGLE_UNICODE.keys.join('|')}));").freeze
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.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-08 00:00:00 +09:00
12
+ date: 2010-01-12 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency