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/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