e4u-encode 0.0.0

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