chinese_convt 0.0.5 → 0.1.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.
@@ -1,21 +1,19 @@
1
1
  module Chinese
2
2
  class Convert
3
3
  def self.zh_convt( arr , str )
4
- convt_table = Array.new
5
- File.open( File.dirname(__FILE__) + "/zh_convt").read.scan(/\[(.*?)\]/).each do |group|
6
- convt_table << Array.new
7
- group.first.scan(/\{(.*?)\}/).each do |type|
8
- convt_table.last << Hash.new
9
- type.first.split(',').each{ |term| convt_table.last.last[ term.split(':').first ] = term.split(':').last }
10
- end
11
- end
4
+ convt_table = File.open(File.dirname(__FILE__) + "/zh_convt").read.split("\n&\n").map{ |group|
5
+ group.split("\n").map{ |type|
6
+ Hash[ type.split(',').map{ |term| term.split(':') } ]
7
+ }
8
+ }
12
9
  begin
13
10
  str0 = String.new( str )
14
11
  str1 = String.new( str )
15
- convt_table.each do |group|
12
+ n = (str.size < 6)? str.size : 6
13
+ convt_table.last(n).each do |group|
16
14
  arr.each do |t|
17
15
  group[t].each do |key , value|
18
- while ( q = str0.index( key ) ) != nil
16
+ while !! q = str0.index( key )
19
17
  str0[q...(q + key.size)] = "#" * value.size
20
18
  str1[q...(q + key.size)] = value
21
19
  end
@@ -24,7 +22,7 @@ module Chinese
24
22
  end
25
23
  return str1
26
24
  rescue
27
- return $!
25
+ return "[#{$!}]"
28
26
  end
29
27
  end
30
28
  end
@@ -3,11 +3,11 @@ require 'test/unit'
3
3
  require 'chinese_convt'
4
4
 
5
5
  class TestChineseConvt < Test::Unit::TestCase
6
- Str_tra = { 0 => "幹部一干人等幹事不乾不淨", 1 => "後天來去后里天后宮", 2 => "這是從前面茶棚里留聲機上放出來的", 3 => "觸摸屏取代鼠標對互聯網的影響", 4 => "舊金山檯球冠軍是諧星"}
7
- Str_sim = { 0 => "干部一干人等干事不干不净", 1 => "后天来去后里天后宫", 2 => "这是从前面茶棚里留声机上放出来的", 3 => "触摸屏取代鼠标对互联网的影响", 4 => "旧金山台球冠军是谐星"}
8
- Str_tw = { 0 => "幹部一干人等幹事不乾不淨", 1 => "後天來去后里天后宮", 2 => "這是從前面茶棚里留聲機上放出來的", 3 => "觸控螢幕取代滑鼠對網際網路的影響", 4 => "舊金山撞球冠軍是諧星"}
9
- Str_hk = { 0 => "幹部一干人等幹事不乾不淨", 1 => "後天來去后里天后宮", 2 => "這是從前面茶棚里留聲機上放出來的", 3 => "觸摸屏取代鼠標對互聯網的影響", 4 => "三藩市桌球冠軍是諧星"}
10
- Str_cn = { 0 => "干部一干人等干事不干不净", 1 => "后天来去后里天后宫", 2 => "这是从前面茶棚里留声机上放出来的", 3 => "触摸屏取代鼠标对互联网的影响", 4 => "旧金山台球冠军是笑星"}
6
+ Str_tra = { 0 => "幹部一干人等幹事不乾不淨", 1 => "線上辭典查詢達文西密碼", 2 => "嘴裡吃著鮪魚三明治", 3 => "觸摸屏取代鼠標對互聯網的影響", 4 => "舊金山檯球冠軍是諧星"}
7
+ Str_sim = { 0 => "干部一干人等干事不干不净", 1 => "线上辞典查询达文西密码", 2 => "嘴里吃着鲔鱼三明治", 3 => "触摸屏取代鼠标对互联网的影响", 4 => "旧金山台球冠军是谐星"}
8
+ Str_tw = { 0 => "幹部一干人等幹事不乾不淨", 1 => "線上辭典查詢達文西密碼", 2 => "嘴裡吃著鮪魚三明治", 3 => "觸控螢幕取代滑鼠對網際網路的影響", 4 => "舊金山撞球冠軍是諧星"}
9
+ Str_hk = { 0 => "幹部一干人等幹事不乾不淨", 1 => "線上辭典查詢達文西密碼", 2 => "嘴裏吃着吞拿魚三文治", 3 => "觸控螢幕取代滑鼠對互聯網的影響", 4 => "三藩市桌球冠軍是諧星"}
10
+ Str_cn = { 0 => "干部一干人等干事不干不净", 1 => "在线词典查找达芬奇密码", 2 => "嘴里吃着金枪鱼三明治", 3 => "触摸屏取代鼠标对互联网的影响", 4 => "旧金山台球冠军是笑星"}
11
11
 
12
12
  def test_zh2tra
13
13
  Str_sim.each{ |i , w| assert_equal( Str_tra[i] , Chinese.zh2tra( w ) ) }
@@ -19,10 +19,12 @@ class TestChineseConvt < Test::Unit::TestCase
19
19
 
20
20
  def test_zh2tw
21
21
  Str_sim.each{ |i , w| assert_equal( Str_tw[i] , Chinese.zh2tw( w ) ) }
22
+ Str_cn.each{ |i , w| assert_equal( Str_tw[i] , Chinese.zh2tw( w ) ) }
22
23
  end
23
24
 
24
25
  def test_zh2hk
25
26
  Str_sim.each{ |i , w| assert_equal( Str_hk[i] , Chinese.zh2hk( w ) ) }
27
+ Str_tw.each{ |i , w| assert_equal( Str_hk[i] , Chinese.zh2hk( w ) ) }
26
28
  end
27
29
 
28
30
  def test_zh2cn
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chinese_convt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-22 00:00:00.000000000 Z
12
+ date: 2012-09-22 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Conversion between Traditional and Simplified Chinese. furthermore, adjusting
15
15
  phrases to conform in Taiwan or Hong Kong or China.
@@ -45,7 +45,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
45
45
  version: '0'
46
46
  requirements: []
47
47
  rubyforge_project:
48
- rubygems_version: 1.8.15
48
+ rubygems_version: 1.8.23
49
49
  signing_key:
50
50
  specification_version: 3
51
51
  summary: Traditional and Simplified Chinese conversion~~