e4u-encode 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +17 -0
  5. data/Rakefile +50 -0
  6. data/VERSION +1 -0
  7. data/lib/e4u/encode/docomo/cp932/docomo_unicode.rb +301 -0
  8. data/lib/e4u/encode/docomo/cp932.rb +12 -0
  9. data/lib/e4u/encode/docomo/unicode/cp932.rb +5 -0
  10. data/lib/e4u/encode/docomo/unicode/google_unicode.rb +294 -0
  11. data/lib/e4u/encode/docomo/unicode/utf8.rb +5 -0
  12. data/lib/e4u/encode/docomo/unicode.rb +34 -0
  13. data/lib/e4u/encode/docomo/utf8/docomo_unicode.rb +300 -0
  14. data/lib/e4u/encode/docomo/utf8.rb +12 -0
  15. data/lib/e4u/encode/docomo.rb +50 -0
  16. data/lib/e4u/encode/encoding.rb +25 -0
  17. data/lib/e4u/encode/google/unicode/docomo_unicode.rb +818 -0
  18. data/lib/e4u/encode/google/unicode/kddi_unicode.rb +818 -0
  19. data/lib/e4u/encode/google/unicode/softbank_unicode.rb +818 -0
  20. data/lib/e4u/encode/google/unicode/utf8.rb +5 -0
  21. data/lib/e4u/encode/google/unicode.rb +45 -0
  22. data/lib/e4u/encode/google/utf8/unicode.rb +823 -0
  23. data/lib/e4u/encode/google/utf8.rb +12 -0
  24. data/lib/e4u/encode/google.rb +47 -0
  25. data/lib/e4u/encode/kddi/cp932/kddi_unicode.rb +667 -0
  26. data/lib/e4u/encode/kddi/cp932.rb +12 -0
  27. data/lib/e4u/encode/kddi/unicode/cp932.rb +5 -0
  28. data/lib/e4u/encode/kddi/unicode/google_unicode.rb +660 -0
  29. data/lib/e4u/encode/kddi/unicode/utf8.rb +5 -0
  30. data/lib/e4u/encode/kddi/unicode.rb +34 -0
  31. data/lib/e4u/encode/kddi/utf8/kddi_unicode.rb +1313 -0
  32. data/lib/e4u/encode/kddi/utf8.rb +12 -0
  33. data/lib/e4u/encode/kddi.rb +50 -0
  34. data/lib/e4u/encode/softbank/cp932/softbank_unicode.rb +504 -0
  35. data/lib/e4u/encode/softbank/cp932.rb +32 -0
  36. data/lib/e4u/encode/softbank/unicode/cp932.rb +5 -0
  37. data/lib/e4u/encode/softbank/unicode/google_unicode.rb +497 -0
  38. data/lib/e4u/encode/softbank/unicode/utf8.rb +5 -0
  39. data/lib/e4u/encode/softbank/unicode.rb +45 -0
  40. data/lib/e4u/encode/softbank/utf8/softbank_unicode.rb +503 -0
  41. data/lib/e4u/encode/softbank/utf8.rb +12 -0
  42. data/lib/e4u/encode/softbank.rb +53 -0
  43. data/lib/e4u/encode.rb +79 -0
  44. data/spec/docomo_spec.rb +230 -0
  45. data/spec/e4u_spec.rb +173 -0
  46. data/spec/encode_spec.rb +78 -0
  47. data/spec/encoding_spec.rb +47 -0
  48. data/spec/google_spec.rb +86 -0
  49. data/spec/kddi_spec.rb +130 -0
  50. data/spec/softbank_spec.rb +147 -0
  51. data/spec/spec.opts +4 -0
  52. data/spec/spec_helper.rb +13 -0
  53. data/tasks/mk_docomo_cp932.rb +34 -0
  54. data/tasks/mk_docomo_unicode.rb +28 -0
  55. data/tasks/mk_docomo_utf8.rb +33 -0
  56. data/tasks/mk_google_unicode_docomo.rb +37 -0
  57. data/tasks/mk_google_unicode_kddi.rb +37 -0
  58. data/tasks/mk_google_unicode_softbank.rb +37 -0
  59. data/tasks/mk_google_utf8.rb +34 -0
  60. data/tasks/mk_kddi_cp932.rb +35 -0
  61. data/tasks/mk_kddi_unicode.rb +30 -0
  62. data/tasks/mk_kddi_utf8.rb +36 -0
  63. data/tasks/mk_softbank_cp932.rb +34 -0
  64. data/tasks/mk_softbank_unicode.rb +28 -0
  65. data/tasks/mk_softbank_utf8.rb +33 -0
  66. data/tasks/tables.rake +70 -0
  67. data/tasks/task_helper.rb +3 -0
  68. metadata +148 -0
data/spec/kddi_spec.rb ADDED
@@ -0,0 +1,130 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
+
4
+ describe E4U::Encode::KDDI do
5
+
6
+ describe "encode" do
7
+ before :all do
8
+ @from, @to = {}, {}
9
+ end
10
+
11
+ it "from[:carrier]が:kddi以外ならば例外が起こる" do
12
+ @from.update :carrier => :not_kddi
13
+ lambda {
14
+ E4U::Encode::KDDI.encode('', @from, @to)
15
+ }.should raise_error
16
+ end
17
+
18
+ context "to[:carrier]が:kddi以外の時" do
19
+ before :all do
20
+ @to.update :carrier => :not_kddi
21
+ end
22
+
23
+ before :each do
24
+ @from.update :carrier => :kddi
25
+ end
26
+
27
+ it "from[:encoding]が:utf8なら :unicodeに変換される" do
28
+ @from.update :encoding => :utf8
29
+ lambda {
30
+ E4U::Encode::KDDI.encode('', @from, @to)
31
+ }.should change { @from[:encoding] }.from(:utf8).to(:unicode)
32
+ end
33
+
34
+ it "from[:encoding]が:sjisなら :unicodeに変換される" do
35
+ @from.update :encoding => :sjis
36
+ lambda {
37
+ E4U::Encode::KDDI.encode('', @from, @to)
38
+ }.should change { @from[:encoding] }.from(:sjis).to(:unicode)
39
+ end
40
+
41
+ it "from[:encoding]が:unicodeなら from[:carrier]が:googleに変換される" do
42
+ @from.update :encoding => :unicode
43
+ lambda {
44
+ E4U::Encode::KDDI.encode('', @from, @to)
45
+ }.should change { @from[:carrier] }.from(:kddi).to(:google)
46
+ end
47
+ end
48
+
49
+ context "to[:carrier]が:kddiの時" do
50
+ before :all do
51
+ @to.update :carrier => :kddi
52
+ end
53
+
54
+ before :each do
55
+ @from.update :carrier => :kddi
56
+ end
57
+
58
+ it "from[:encoding]が:sjisならば、:unicodeに変換される" do
59
+ @from.update :encoding => :sjis
60
+ lambda {
61
+ E4U::Encode::KDDI.encode('', @from, @to)
62
+ }.should change { @from[:encoding] }.from(:sjis).to(:unicode)
63
+ end
64
+
65
+ it "from[:encoding]が:utf8ならば、:unicodeに変換される" do
66
+ @from.update :encoding => :utf8
67
+ lambda {
68
+ E4U::Encode::KDDI.encode('', @from, @to)
69
+ }.should change { @from[:encoding] }.from(:utf8).to(:unicode)
70
+ end
71
+
72
+ context "from[:encoding]が:unicodeの時" do
73
+ before :each do
74
+ @from.update :encoding => :unicode
75
+ end
76
+
77
+ it "to[:encoding]が:sjisならば、from[:encoding]も:sjisになる" do
78
+ @to.update :encoding => :sjis
79
+ lambda {
80
+ E4U::Encode::KDDI.encode('', @from, @to)
81
+ }.should change { @from[:encoding] }.from(:unicode).to(:sjis)
82
+ end
83
+
84
+ it "to[:encoding]が:utf8ならば、from[:encoding]も:utf8になる" do
85
+ @to.update :encoding => :utf8
86
+ lambda {
87
+ E4U::Encode::KDDI.encode('', @from, @to)
88
+ }.should change { @from[:encoding] }.from(:unicode).to(:utf8)
89
+ end
90
+
91
+ it "to[:encoding]が:sjis、:utf8以外ならば、例外が起こる" do
92
+ @to.update :encoding => :other_encoding
93
+ lambda {
94
+ E4U::Encode::KDDI.encode('', @from, @to)
95
+ }.should raise_error
96
+ end
97
+
98
+ it "to[:encoding]が:sjisならば、CP932な文字列が返ってくる" do
99
+ pending "only RUBY_VERSION >= '1.9.1'" unless RUBY_VERSION >= '1.9.1'
100
+ str = "とある文字列の符号化方式<エンコーディング>"
101
+ @to.update :encoding => :sjis
102
+ E4U::Encode::KDDI.encode(str, @from, @to).encoding.should == Encoding::Windows_31J
103
+ # lambda {
104
+ # E4U::Encode::KDDI.encode(str, @from, @to)
105
+ # }.should change(str, :encoding).from(Encoding::UTF_8).to(Encoding::Windows_31J)
106
+ end
107
+
108
+ it "to[:encoding]が:utf8ならば、UTF-8な文字列が返ってくる" do
109
+ pending "only RUBY_VERSION >= '1.9.1'" unless RUBY_VERSION >= '1.9.1'
110
+ str = "とある文字列の符号化方式<エンコーディング>"
111
+ @to.update :encoding => :utf8
112
+ E4U::Encode::KDDI.encode(str, @from, @to).encoding.should == Encoding::UTF_8
113
+ # lambda {
114
+ # E4U::Encode::KDDI.encode(str, @from, @to)
115
+ # }.should change(str, :encoding).from(Encoding::UTF_8).to(Encoding::UTF_8)
116
+ end
117
+
118
+ it "to[:encoding]が:unicodeならば、UTF-8な文字列が返ってくる" do
119
+ pending "only RUBY_VERSION >= '1.9.1'" unless RUBY_VERSION >= '1.9.1'
120
+ str = "とある文字列の符号化方式<エンコーディング>"
121
+ @to.update :encoding => :utf8
122
+ E4U::Encode::KDDI.encode(str, @from, @to).encoding.should == Encoding::UTF_8
123
+ # lambda {
124
+ # E4U::Encode::KDDI.encode(str, @from, @to)
125
+ # }.should change(str, :encoding).from(Encoding::UTF_8).to(Encoding::UTF_8)
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,147 @@
1
+ # -*- coding: utf-8 -*-
2
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
+
4
+ describe E4U::Encode::Softbank do
5
+
6
+ describe "encode" do
7
+ before :all do
8
+ @from, @to = {}, {}
9
+ end
10
+
11
+ it "from[:carrier]が:softbank以外ならば例外が起こる" do
12
+ @from.update :carrier => :not_softbank
13
+ lambda {
14
+ E4U::Encode::Softbank.encode('', @from, @to)
15
+ }.should raise_error
16
+ end
17
+
18
+ context "to[:carrier]が:softbank以外の時" do
19
+ before :all do
20
+ @to.update :carrier => :not_softbank
21
+ end
22
+
23
+ before :each do
24
+ @from.update :carrier => :softbank
25
+ end
26
+
27
+ it "from[:encoding]が:utf8なら :unicodeに変換される" do
28
+ @from.update :encoding => :utf8
29
+ lambda {
30
+ E4U::Encode::Softbank.encode('', @from, @to)
31
+ }.should change { @from[:encoding] }.from(:utf8).to(:unicode)
32
+ end
33
+
34
+ it "from[:encoding]が:sjisなら :unicodeに変換される" do
35
+ @from.update :encoding => :sjis
36
+ lambda {
37
+ E4U::Encode::Softbank.encode('', @from, @to)
38
+ }.should change { @from[:encoding] }.from(:sjis).to(:unicode)
39
+ end
40
+
41
+ it "from[:encoding]が:unicodeなら from[:carrier]が:googleに変換される" do
42
+ @from.update :encoding => :unicode
43
+ lambda {
44
+ E4U::Encode::Softbank.encode('', @from, @to)
45
+ }.should change { @from[:carrier] }.from(:softbank).to(:google)
46
+ end
47
+ end
48
+
49
+ context "to[:carrier]が:softbankの時" do
50
+ before :all do
51
+ @to.update :carrier => :softbank
52
+ end
53
+
54
+ before :each do
55
+ @from.update :carrier => :softbank
56
+ end
57
+
58
+ it "from[:encoding]が:sjisならば、:unicodeに変換される" do
59
+ @from.update :encoding => :sjis
60
+ lambda {
61
+ E4U::Encode::Softbank.encode('', @from, @to)
62
+ }.should change { @from[:encoding] }.from(:sjis).to(:unicode)
63
+ end
64
+
65
+ it "from[:encoding]が:utf8ならば、:unicodeに変換される" do
66
+ @from.update :encoding => :utf8
67
+ lambda {
68
+ E4U::Encode::Softbank.encode('', @from, @to)
69
+ }.should change { @from[:encoding] }.from(:utf8).to(:unicode)
70
+ end
71
+
72
+ context "from[:encoding]が:unicodeの時" do
73
+ before :each do
74
+ @from.update :encoding => :unicode
75
+ end
76
+
77
+ it "to[:encoding]が:sjisならば、from[:encoding]も:sjisになる" do
78
+ @to.update :encoding => :sjis
79
+ lambda {
80
+ E4U::Encode::Softbank.encode('', @from, @to)
81
+ }.should change { @from[:encoding] }.from(:unicode).to(:sjis)
82
+ end
83
+
84
+ it "to[:encoding]が:utf8ならば、from[:encoding]も:utf8になる" do
85
+ @to.update :encoding => :utf8
86
+ lambda {
87
+ E4U::Encode::Softbank.encode('', @from, @to)
88
+ }.should change { @from[:encoding] }.from(:unicode).to(:utf8)
89
+ end
90
+
91
+ it "to[:encoding]が:webcodeならば、from[:encoding]も:webcodeになる" do
92
+ @to.update :encoding => :webcode
93
+ lambda {
94
+ E4U::Encode::Softbank.encode('', @from, @to)
95
+ }.should change { @from[:encoding] }.from(:unicode).to(:webcode)
96
+ end
97
+
98
+ it "to[:encoding]が:sjis、:utf8、:webcode以外ならば、例外が起こる" do
99
+ @to.update :encoding => :other_encoding
100
+ lambda {
101
+ E4U::Encode::Softbank.encode('', @from, @to)
102
+ }.should raise_error
103
+ end
104
+
105
+ it "to[:encoding]が:sjisならば、CP932な文字列が返ってくる" do
106
+ pending "only RUBY_VERSION >= '1.9.1'" unless RUBY_VERSION >= '1.9.1'
107
+ str = "とある文字列の符号化方式<エンコーディング>"
108
+ @to.update :encoding => :sjis
109
+ E4U::Encode::Softbank.encode(str, @from, @to).encoding.should == Encoding::Windows_31J
110
+ # lambda {
111
+ # E4U::Encode::Softbank.encode(str, @from, @to)
112
+ # }.should change(str, :encoding).from(Encoding::UTF_8).to(Encoding::Windows_31J)
113
+ end
114
+
115
+ it "to[:encoding]が:webcodeならば、CP932な文字列が返ってくる" do
116
+ pending "only RUBY_VERSION >= '1.9.1'" unless RUBY_VERSION >= '1.9.1'
117
+ str = "とある文字列の符号化方式<エンコーディング>"
118
+ @to.update :encoding => :webcode
119
+ E4U::Encode::Softbank.encode(str, @from, @to).encoding.should == Encoding::Windows_31J
120
+ # lambda {
121
+ # E4U::Encode::Softbank.encode(str, @from, @to)
122
+ # }.should change(str, :encoding).from(Encoding::UTF_8).to(Encoding::Windows_31J)
123
+ end
124
+
125
+ it "to[:encoding]が:utf8ならば、UTF-8な文字列が返ってくる" do
126
+ pending "only RUBY_VERSION >= '1.9.1'" unless RUBY_VERSION >= '1.9.1'
127
+ str = "とある文字列の符号化方式<エンコーディング>"
128
+ @to.update :encoding => :utf8
129
+ E4U::Encode::Softbank.encode(str, @from, @to).encoding.should == Encoding::UTF_8
130
+ # lambda {
131
+ # E4U::Encode::Softbank.encode(str, @from, @to)
132
+ # }.should change(str, :encoding).from(Encoding::UTF_8).to(Encoding::UTF_8)
133
+ end
134
+
135
+ it "to[:encoding]が:unicodeならば、UTF-8な文字列が返ってくる" do
136
+ pending "only RUBY_VERSION >= '1.9.1'" unless RUBY_VERSION >= '1.9.1'
137
+ str = "とある文字列の符号化方式<エンコーディング>"
138
+ @to.update :encoding => :utf8
139
+ E4U::Encode::Softbank.encode(str, @from, @to).encoding.should == Encoding::UTF_8
140
+ # lambda {
141
+ # E4U::Encode::Softbank.encode(str, @from, @to)
142
+ # }.should change(str, :encoding).from(Encoding::UTF_8).to(Encoding::UTF_8)
143
+ end
144
+ end
145
+ end
146
+ end
147
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1,4 @@
1
+ --color
2
+ --format progress
3
+ --loadby mtime
4
+ --reverse
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'e4u/encode'
4
+ require 'spec'
5
+ require 'spec/autorun'
6
+
7
+ require 'nkf'
8
+ require 'rubygems'
9
+ require 'e4u'
10
+
11
+ Spec::Runner.configure do |config|
12
+
13
+ end
@@ -0,0 +1,34 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_docomo_cp932 target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
8
+ module E4U
9
+ module Encode
10
+ module DoCoMo
11
+ end
12
+ end
13
+ end
14
+ class E4U::Encode::DoCoMo::Cp932
15
+ DOCOMO_UNICODE = {
16
+ <% E4U.docomo.each do |e| -%>
17
+ <% docomo = e.docomo_emoji -%>
18
+ ((s = [0x<%= "%X" % docomo.sjis.unpack('n') %>].pack('n')) && RUBY_VERSION < '1.9.1' ? s : s.force_encoding('CP932')) => '<%= docomo.unicode.upcase %>'.freeze,
19
+ <% end -%>
20
+ }.freeze
21
+
22
+ DOCOMO_UNICODE_REGEXP = Regexp.union(*DOCOMO_UNICODE.keys.map(&((RUBY_VERSION < '1.9.1') ?
23
+ (lambda { |e|
24
+ Regexp.new(Regexp.escape(e,'s'),nil,'s')
25
+ }) :
26
+ (lambda { |e|
27
+ Regexp.new(Regexp.escape(e))
28
+ })))).freeze
29
+ end
30
+ ERB
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,28 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_docomo_unicode target
5
+ 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
13
+ class E4U::Encode::DoCoMo::Unicode
14
+ 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,
19
+ <% end -%>
20
+ }.freeze
21
+
22
+ GOOGLE_UNICODE_REGEXP = Regexp.new("&#x((?i:#{GOOGLE_UNICODE.keys.join('|')}));").freeze
23
+ end
24
+ ERB
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,33 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_docomo_utf8 target
5
+ 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
13
+ class E4U::Encode::DoCoMo::Utf8
14
+ DOCOMO_UNICODE = {
15
+ <% E4U.docomo.each do |e| -%>
16
+ <% docomo = e.docomo_emoji -%>
17
+ [0x<%= docomo.unicode %>].pack('U') => '<%= docomo.unicode.upcase %>'.freeze,
18
+ <% end -%>
19
+ }.freeze
20
+
21
+ DOCOMO_UNICODE_REGEXP = Regexp.union(*DOCOMO_UNICODE.keys.map(&((RUBY_VERSION < '1.9.1') ?
22
+ (lambda { |e|
23
+ Regexp.new(Regexp.escape(e,'u'),nil,'u')
24
+ }) :
25
+ (lambda { |e|
26
+ Regexp.new(Regexp.escape(e))
27
+ })))).freeze
28
+ end
29
+ ERB
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,37 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_google_unicode_docomo target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ # -*- coding:utf-8 -*-
8
+ module E4U
9
+ module Encode
10
+ module Google
11
+ end
12
+ end
13
+ end
14
+ class E4U::Encode::Google::Unicode
15
+ DOCOMO_UNICODE = {
16
+ <% E4U.google.each do |data| -%>
17
+ <% next unless data[:google] -%>
18
+ <% if data[:docomo] -%>
19
+ <% google = data.google_emoji -%>
20
+ <% next if google.alternate? -%>
21
+ <% docomo = data.docomo_emoji -%>
22
+ '<%= google.google %>' => "<%= docomo.utf8.unpack('U*').map{ |e| "&#x%04X;" % e }.join %>".freeze,
23
+ <% else -%>
24
+ <% google = data.google_emoji -%>
25
+ <% text = google.text_fallback || google.text_repr || [0x3013].pack('U'); -%>
26
+ '<%= google.google %>' => "<%= text %>".freeze,
27
+ <% end -%>
28
+ <% end -%>
29
+ }.freeze
30
+
31
+ DOCOMO_UNICODE_REGEXP = Regexp.new("&#x((?i:#{DOCOMO_UNICODE.keys.join('|')}));").freeze
32
+ end
33
+ ERB
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,37 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_google_unicode_kddi target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ # -*- coding:utf-8 -*-
8
+ module E4U
9
+ module Encode
10
+ module Google
11
+ end
12
+ end
13
+ end
14
+ class E4U::Encode::Google::Unicode
15
+ KDDI_UNICODE = {
16
+ <% E4U.google.each do |data| -%>
17
+ <% next unless data[:google] -%>
18
+ <% if data[:kddi] -%>
19
+ <% google = data.google_emoji -%>
20
+ <% next if google.alternate? -%>
21
+ <% kddi = data.kddiweb_emoji -%>
22
+ '<%= google.google %>' => "<%= kddi.utf8.unpack('U*').map{ |e| "&#x%04X;" % e }.join %>".freeze,
23
+ <% else -%>
24
+ <% google = data.google_emoji -%>
25
+ <% text = google.text_fallback || google.text_repr || [0x3013].pack('U') -%>
26
+ '<%= google.google %>' => "<%= text %>".freeze,
27
+ <% end -%>
28
+ <% end -%>
29
+ }.freeze
30
+
31
+ KDDI_UNICODE_REGEXP = Regexp.new("&#x((?i:#{KDDI_UNICODE.keys.join('|')}));").freeze
32
+ end
33
+ ERB
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,37 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_google_unicode_softbank target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ # -*- coding:utf-8 -*-
8
+ module E4U
9
+ module Encode
10
+ module Google
11
+ end
12
+ end
13
+ end
14
+ class E4U::Encode::Google::Unicode
15
+ SOFTBANK_UNICODE = {
16
+ <% E4U.google.each do |data| -%>
17
+ <% next unless data[:google] -%>
18
+ <% if data[:softbank] -%>
19
+ <% google = data.google_emoji -%>
20
+ <% next if google.alternate? -%>
21
+ <% softbank = data.softbank_emoji -%>
22
+ '<%= google.google %>' => "<%= softbank.utf8.unpack('U*').map{ |e| "&#x%04X;" % e }.join %>".freeze,
23
+ <% else -%>
24
+ <% google = data.google_emoji -%>
25
+ <% text = google.text_fallback || google.text_repr || [0x3013].pack('U') -%>
26
+ '<%= google.google %>' => "<%= text %>".freeze,
27
+ <% end -%>
28
+ <% end -%>
29
+ }.freeze
30
+
31
+ SOFTBANK_UNICODE_REGEXP = Regexp.new("&#x((?i:#{SOFTBANK_UNICODE.keys.join('|')}));").freeze
32
+ end
33
+ ERB
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,34 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_google_utf8 target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ module E4U
8
+ module Encode
9
+ module Google
10
+ end
11
+ end
12
+ end
13
+ class E4U::Encode::Google::Utf8
14
+ UNICODE = {
15
+ <% E4U.google.each do |google| -%>
16
+ <% next unless google[:google] -%>
17
+ <% next if google.google_emoji.alternate? -%>
18
+ [0x<%= google[:google] %>].pack('U') => '<%= google[:google] %>'.freeze,
19
+ <% end -%>
20
+ }.freeze
21
+
22
+ UNICODE_REGEXP = Regexp.union(*UNICODE.keys.map(&((RUBY_VERSION < '1.9.1') ?
23
+ (lambda { |e|
24
+ Regexp.new(Regexp.escape(e,'u'),nil,'u')
25
+ }) :
26
+ (lambda { |e|
27
+ Regexp.new(Regexp.escape(e))
28
+ })))).freeze
29
+ end
30
+ ERB
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,35 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_kddi_cp932 target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ require 'e4u/encode/docomo/cp932/docomo_unicode'
8
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
9
+ module E4U
10
+ module Encode
11
+ module KDDI
12
+ end
13
+ end
14
+ end
15
+ class E4U::Encode::KDDI::Cp932
16
+ KDDI_UNICODE = {
17
+ <% E4U.kddi.each do |e| -%>
18
+ <% kddi = e.kddiweb_emoji -%>
19
+ ((s = [0x<%= "%X" % kddi.sjis.unpack('n') %>].pack('n')) && RUBY_VERSION < '1.9.1' ? s : s.force_encoding('CP932')) => '<%= kddi.unicode.upcase %>'.freeze,
20
+ <% end -%>
21
+ }.merge(E4U::Encode::DoCoMo::Cp932::DOCOMO_UNICODE).freeze
22
+
23
+ KDDI_UNICODE_REGEXP = Regexp.union(*KDDI_UNICODE.keys.map(&((RUBY_VERSION < '1.9.1') ?
24
+ (lambda { |e|
25
+ Regexp.new(Regexp.escape(e,'s'),nil,'s')
26
+ }) :
27
+ (lambda { |e|
28
+ Regexp.new(Regexp.escape(e))
29
+ })))).freeze
30
+ end
31
+ ERB
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,30 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_kddi_unicode target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ require 'e4u/encode/docomo/unicode/google_unicode'
8
+ module E4U
9
+ module Encode
10
+ module KDDI
11
+ end
12
+ end
13
+ end
14
+ class E4U::Encode::KDDI::Unicode
15
+ 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,
21
+ <% end -%>
22
+ }.merge(E4U::Encode::DoCoMo::Unicode::GOOGLE_UNICODE).freeze
23
+
24
+ GOOGLE_UNICODE_REGEXP = Regexp.new("&#x((?i:#{GOOGLE_UNICODE.keys.join('|')}));").freeze
25
+ end
26
+ ERB
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,36 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_kddi_utf8 target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ require 'e4u/encode/docomo/utf8/docomo_unicode'
8
+ module E4U
9
+ module Encode
10
+ module KDDI
11
+ end
12
+ end
13
+ end
14
+ class E4U::Encode::KDDI::Utf8
15
+ KDDI_UNICODE = {
16
+ <% E4U.kddi.each do |e| -%>
17
+ <% kddi = e.kddiweb_emoji -%>
18
+ <% kddiapp = e.kddi_emoji -%>
19
+ [0x<%= kddi.unicode %>].pack('U') => '<%= kddi.unicode.upcase %>'.freeze,
20
+ [0x<%= kddiapp.unicode %>].pack('U') => '<%= kddi.unicode.upcase %>'.freeze,
21
+ <% end -%>
22
+ }.merge(E4U::Encode::DoCoMo::Utf8::DOCOMO_UNICODE).freeze
23
+
24
+ KDDI_UNICODE_REGEXP = Regexp.union(*KDDI_UNICODE.keys.map(&((RUBY_VERSION < '1.9.1') ?
25
+ (lambda { |e|
26
+ Regexp.new(Regexp.escape(e,'u'),nil,'u')
27
+ }) :
28
+ (lambda { |e|
29
+ Regexp.new(Regexp.escape(e))
30
+ })))).freeze
31
+ end
32
+ ERB
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,34 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/task_helper')
2
+ module Update
3
+ class Table
4
+ def self.mk_softbank_cp932 target
5
+ File.open(target, 'wb') do |out|
6
+ out.print ERB.new(<<'ERB', nil, '-').result
7
+ $KCODE = 'u' if RUBY_VERSION < '1.9.1'
8
+ module E4U
9
+ module Encode
10
+ module Softbank
11
+ end
12
+ end
13
+ end
14
+ class E4U::Encode::Softbank::Cp932
15
+ SOFTBANK_UNICODE = {
16
+ <% E4U.softbank.each do |e| -%>
17
+ <% softbank = e.softbank_emoji -%>
18
+ ((s = [0x<%= "%X" % softbank.sjis.unpack('n') %>].pack('n')) && RUBY_VERSION < '1.9.1' ? s : s.force_encoding('CP932')) => '<%= softbank.unicode.upcase %>'.freeze,
19
+ <% end -%>
20
+ }.freeze
21
+
22
+ SOFTBANK_UNICODE_REGEXP = Regexp.union(*SOFTBANK_UNICODE.keys.map(&((RUBY_VERSION < '1.9.1') ?
23
+ (lambda { |e|
24
+ Regexp.new(Regexp.escape(e,'s'),nil,'s')
25
+ }) :
26
+ (lambda { |e|
27
+ Regexp.new(Regexp.escape(e))
28
+ })))).freeze
29
+ end
30
+ ERB
31
+ end
32
+ end
33
+ end
34
+ end