zhongwen_tools 0.15.2 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b15ba72f7cd50119d69f66c25ac805b8b0526536
4
- data.tar.gz: 9d9c2eb14ed527779f017f7a937d14abbd169d44
3
+ metadata.gz: 7a29eb86ac35d8257d2217689c48e9873d8de5da
4
+ data.tar.gz: ddf924ac299a9abb538fb126d1cae641986881e6
5
5
  SHA512:
6
- metadata.gz: ea050256a8f55ecc81d76c1eca9bfd32ed206edbd45e0ac797fa1ef4ee0fb5629c047e7555e2ac5306de680f4ade0f64a2bfe4290fefdcca8698ba0f429b0aaf
7
- data.tar.gz: dfdae12ca269460abb45da934d13241c9d9ae047cf6ef04c9007e0fbc0d03e6ebdd177182acfbfacd5e8e46f7b217c00c5a5c3e8723ef96c6c6d5030c4dadf80
6
+ metadata.gz: 0fa6d25cab07aef1b589d7a7bda7354951b4536f12c58ecf9b91dc6c768b78cc9c6aafa0ba3016bc41d24441911737db7d45aa48ba65b9a983c9492122a465f8
7
+ data.tar.gz: 2b5758285228eb57cc8b107cdf6ac820e6eb49b884b5b5cc46d76c30bf485898e8c33da160e0a563c1fe4f4603184f8ea5ee06bbf81e29e16a2abf4facdbedf6
data/README.md CHANGED
@@ -86,6 +86,22 @@ You can monkey patch the String class.
86
86
 
87
87
  'nǐ hǎo'.to_mps2 #=> 'ni3 hau3'
88
88
 
89
+ 'nǐ hǎo'.romanization? :py
90
+
91
+ 'nǐ hǎo'.py? #=> true
92
+
93
+ 'nǐ hǎo'.pyn? # false
94
+
95
+ 'nǐ hǎo'.bpmf? # false
96
+
97
+ 'nǐ hǎo'.wg? # false
98
+
99
+ 'nǐ hǎo'.yale? # false
100
+
101
+ 'nǐ hǎo'.typy? # false
102
+
103
+ 'nǐ hǎo'.mps2? # false
104
+
89
105
  '你们好'.zhs? #=> true
90
106
 
91
107
  '你们好'.zht? #=> false
@@ -10,7 +10,7 @@ module ZhongwenTools
10
10
 
11
11
  def self.upcase(str)
12
12
  str.gsub(/(#{ZhongwenTools::Caps::CAPS.values.join('|')})/){
13
- ZhongwenTools::Caps::CAPS.find{|k,v| v == $1}[0]
13
+ ZhongwenTools::Caps::CAPS.find{ |k, v| v == $1 }[0]
14
14
  }.upcase
15
15
  end
16
16
 
@@ -43,32 +43,32 @@ module ZhongwenTools
43
43
  'Ú' => 'ú',
44
44
  'Ǔ' => 'ǔ',
45
45
  'Ù' => 'ù',
46
- "" => "",
47
- "" => "",
48
- "" => "",
49
- "" => "",
50
- "" => "",
51
- "" => "",
52
- "" => "",
53
- "" => "",
54
- "" => "",
55
- "" => "",
56
- "" => "",
57
- "" => "",
58
- "" => "",
59
- "" => "",
60
- "" => "",
61
- "" => "",
62
- "" => "",
63
- "" => "",
64
- "" => "",
65
- "" => "",
66
- "" => "",
67
- "" => "",
68
- "" => "",
69
- "" => "",
70
- "" => "",
71
- "" => ""
46
+ '' => '',
47
+ '' => '',
48
+ '' => '',
49
+ '' => '',
50
+ '' => '',
51
+ '' => '',
52
+ '' => '',
53
+ '' => '',
54
+ '' => '',
55
+ '' => '',
56
+ '' => '',
57
+ '' => '',
58
+ '' => '',
59
+ '' => '',
60
+ '' => '',
61
+ '' => '',
62
+ '' => '',
63
+ '' => '',
64
+ '' => '',
65
+ '' => '',
66
+ '' => '',
67
+ '' => '',
68
+ '' => '',
69
+ '' => '',
70
+ '' => '',
71
+ '' => ''
72
72
  }
73
73
  end
74
74
  end
@@ -17,85 +17,85 @@ module ZhongwenTools
17
17
  end
18
18
 
19
19
  FW_HW ={
20
- "" => "0",
21
- "" => "1",
22
- "" => "2",
23
- "" => "3",
24
- "" => "4",
25
- "" => "5",
26
- "" => "6",
27
- "" => "7",
28
- "" => "8",
29
- "" => "9",
30
- "" => "A",
31
- "" => "B",
32
- "" => "C",
33
- "" => "D",
34
- "" => "E",
35
- "" => "F",
36
- "" => "G",
37
- "" => "H",
38
- "" => "I",
39
- "" => "J",
40
- "" => "K",
41
- "" => "L",
42
- "" => "M",
43
- "" => "N",
44
- "" => "O",
45
- "" => "P",
46
- "" => "Q",
47
- "" => "R",
48
- "" => "S",
49
- "" => "T",
50
- "" => "U",
51
- "" => "V",
52
- "" => "W",
53
- "" => "X",
54
- "" => "Y",
55
- "" => "Z",
56
- "" => "a",
57
- "" => "b",
58
- "" => "c",
59
- "" => "d",
60
- "" => "e",
61
- "" => "f",
62
- "" => "g",
63
- "" => "h",
64
- "" => "i",
65
- "" => "j",
66
- "" => "k",
67
- "" => "l",
68
- "" => "m",
69
- "" => "n",
70
- "" => "o",
71
- "" => "p",
72
- "" => "q",
73
- "" => "r",
74
- "" => "s",
75
- "" => "t",
76
- "" => "u",
77
- "" => "v",
78
- "" => "w",
79
- "" => "x",
80
- "" => "y",
81
- "" => "z",
82
- "" => '%',
83
- "" => '.',
20
+ '' => '0',
21
+ '' => '1',
22
+ '' => '2',
23
+ '' => '3',
24
+ '' => '4',
25
+ '' => '5',
26
+ '' => '6',
27
+ '' => '7',
28
+ '' => '8',
29
+ '' => '9',
30
+ '' => 'A',
31
+ '' => 'B',
32
+ '' => 'C',
33
+ '' => 'D',
34
+ '' => 'E',
35
+ '' => 'F',
36
+ '' => 'G',
37
+ '' => 'H',
38
+ '' => 'I',
39
+ '' => 'J',
40
+ '' => 'K',
41
+ '' => 'L',
42
+ '' => 'M',
43
+ '' => 'N',
44
+ '' => 'O',
45
+ '' => 'P',
46
+ '' => 'Q',
47
+ '' => 'R',
48
+ '' => 'S',
49
+ '' => 'T',
50
+ '' => 'U',
51
+ '' => 'V',
52
+ '' => 'W',
53
+ '' => 'X',
54
+ '' => 'Y',
55
+ '' => 'Z',
56
+ '' => 'a',
57
+ '' => 'b',
58
+ '' => 'c',
59
+ '' => 'd',
60
+ '' => 'e',
61
+ '' => 'f',
62
+ '' => 'g',
63
+ '' => 'h',
64
+ '' => 'i',
65
+ '' => 'j',
66
+ '' => 'k',
67
+ '' => 'l',
68
+ '' => 'm',
69
+ '' => 'n',
70
+ '' => 'o',
71
+ '' => 'p',
72
+ '' => 'q',
73
+ '' => 'r',
74
+ '' => 's',
75
+ '' => 't',
76
+ '' => 'u',
77
+ '' => 'v',
78
+ '' => 'w',
79
+ '' => 'x',
80
+ '' => 'y',
81
+ '' => 'z',
82
+ '' => '%',
83
+ '' => '.',
84
84
  ':' => ':',
85
- "" => '#',
86
- "" => "$",
87
- "" => "&",
88
- "" => "+",
89
- "" => "-",
90
- "" => "/",
91
- "" => '\\',
85
+ '' => '#',
86
+ '' => '$',
87
+ '' => '&',
88
+ '' => '+',
89
+ '' => '-',
90
+ '' => '/',
91
+ '' => '\\',
92
92
  '=' => '=',
93
- "" => ";",
94
- "" => "<",
95
- "" => ">",
96
- "" => "?",
97
- "" => ".",
98
- "" => "!",
93
+ '' => ';',
94
+ '' => '<',
95
+ '' => '>',
96
+ '' => '?',
97
+ '' => '.',
98
+ '' => '!',
99
99
  ',' => ','
100
100
  }
101
101
  end
@@ -6,39 +6,39 @@ module ZhongwenTools
6
6
  # 垓 秭 穰 溝 澗 正 載 --> beyond 100,000,000!
7
7
  # NOTE: financial numbers i == 0 ? NT.select{ |x| x[:i] == i }.last[:zhs] : NT.find{ |x| x[:i] = i }
8
8
  NUMBERS_TABLE = [
9
- { :zhs => '零', :zht => '零', :i => 0, :pyn => 'ling2'},
10
- { :zhs => '〇', :zht => '〇', :i => 0, :pyn => 'ling2'},
11
- { :zhs => '一', :zht => '一', :i => 1, :pyn => 'yi1'},
12
- { :zhs => '壹', :zht => '壹', :i => 1, :pyn => 'yi1'},
13
- { :zhs => '幺', :zht => '幺', :i => 1, :pyn => 'yao1'},
14
- { :zhs => '二', :zht => '二', :i => 2, :pyn => 'er4'},
15
- { :zhs => '两', :zht => '兩', :i => 2, :pyn => 'liang3'},
16
- { :zhs => '贰', :zht => '貳', :i => 2, :pyn => 'er4'},
17
- { :zhs => '三', :zht => '三', :i => 3, :pyn => 'san1'},
18
- { :zhs => '弎', :zht => '弎', :i => 3, :pyn => 'san1'},
19
- { :zhs => '叁', :zht => '參', :i => 3, :pyn => 'san1'},
20
- { :zhs => '四', :zht => '四', :i => 4, :pyn => 'si4'},
21
- { :zhs => '䦉', :zht => '䦉', :i => 4, :pyn => 'si4'},
22
- { :zhs => '肆', :zht => '肆', :i => 4, :pyn => 'si4'},
23
- { :zhs => '五', :zht => '五', :i => 5, :pyn => 'wu3'},
24
- { :zhs => '伍', :zht => '伍', :i => 5, :pyn => 'wu3'},
25
- { :zhs => '六', :zht => '六', :i => 6, :pyn => 'liu4'},
26
- { :zhs => '陆', :zht => '陸', :i => 6, :pyn => 'liu4'},
27
- { :zhs => '七', :zht => '七', :i => 7, :pyn => 'qi1'},
28
- { :zhs => '柒', :zht => '柒', :i => 7, :pyn => 'qi1'},
29
- { :zhs => '八', :zht => '八', :i => 8, :pyn => 'ba1'},
30
- { :zhs => '捌', :zht => '捌', :i => 8, :pyn => 'ba1'},
31
- { :zhs => '九', :zht => '九', :i => 9, :pyn => 'jiu3'},
32
- { :zhs => '玖', :zht => '玖', :i => 9, :pyn => 'jiu3'},
33
- { :zhs => '十', :zht => '十', :i => 10, :pyn => 'shi2'},
34
- { :zhs => '拾', :zht => '拾', :i => 10, :pyn => 'shi2'},
35
- { :zhs => '廿', :zht => '廿', :i => 20, :pyn => ' nian4'},
36
- { :zhs => '百', :zht => '百', :i => 100, :pyn => 'bai2'},
37
- { :zhs => '佰', :zht => '佰', :i => 100, :pyn => 'bai2'},
38
- { :zhs => '千', :zht => '千', :i => 1_000, :pyn => 'qian1'},
39
- { :zhs => '仟', :zht => '仟', :i => 1_000, :pyn => 'qian1'},
40
- { :zhs => '万', :zht => '萬', :i => 10_000, :pyn => 'wan4'},
41
- { :zhs => '亿', :zht => '億', :i => 100_000_000, :pyn => 'yi4'},
9
+ { zhs: '零', zht: '零', i: 0, pyn: 'ling2' },
10
+ { zhs: '〇', zht: '〇', i: 0, pyn: 'ling2' },
11
+ { zhs: '一', zht: '一', i: 1, pyn: 'yi1' },
12
+ { zhs: '壹', zht: '壹', i: 1, pyn: 'yi1' },
13
+ { zhs: '幺', zht: '幺', i: 1, pyn: 'yao1' },
14
+ { zhs: '二', zht: '二', i: 2, pyn: 'er4' },
15
+ { zhs: '两', zht: '兩', i: 2, pyn: 'liang3' },
16
+ { zhs: '贰', zht: '貳', i: 2, pyn: 'er4' },
17
+ { zhs: '三', zht: '三', i: 3, pyn: 'san1' },
18
+ { zhs: '弎', zht: '弎', i: 3, pyn: 'san1' },
19
+ { zhs: '叁', zht: '參', i: 3, pyn: 'san1' },
20
+ { zhs: '四', zht: '四', i: 4, pyn: 'si4' },
21
+ { zhs: '䦉', zht: '䦉', i: 4, pyn: 'si4' },
22
+ { zhs: '肆', zht: '肆', i: 4, pyn: 'si4' },
23
+ { zhs: '五', zht: '五', i: 5, pyn: 'wu3' },
24
+ { zhs: '伍', zht: '伍', i: 5, pyn: 'wu3' },
25
+ { zhs: '六', zht: '六', i: 6, pyn: 'liu4' },
26
+ { zhs: '陆', zht: '陸', i: 6, pyn: 'liu4' },
27
+ { zhs: '七', zht: '七', i: 7, pyn: 'qi1' },
28
+ { zhs: '柒', zht: '柒', i: 7, pyn: 'qi1' },
29
+ { zhs: '八', zht: '八', i: 8, pyn: 'ba1' },
30
+ { zhs: '捌', zht: '捌', i: 8, pyn: 'ba1' },
31
+ { zhs: '九', zht: '九', i: 9, pyn: 'jiu3' },
32
+ { zhs: '玖', zht: '玖', i: 9, pyn: 'jiu3' },
33
+ { zhs: '十', zht: '十', i: 10, pyn: 'shi2' },
34
+ { zhs: '拾', zht: '拾', i: 10, pyn: 'shi2' },
35
+ { zhs: '廿', zht: '廿', i: 20, pyn: ' nian4' },
36
+ { zhs: '百', zht: '百', i: 100, pyn: 'bai2' },
37
+ { zhs: '佰', zht: '佰', i: 100, pyn: 'bai2' },
38
+ { zhs: '千', zht: '千', i: 1_000, pyn: 'qian1' },
39
+ { zhs: '仟', zht: '仟', i: 1_000, pyn: 'qian1' },
40
+ { zhs: '万', zht: '萬', i: 10_000, pyn: 'wan4' },
41
+ { zhs: '亿', zht: '億', i: 100_000_000, pyn: 'yi4' },
42
42
  ]
43
43
  end
44
44
  end
@@ -160,7 +160,7 @@ module ZhongwenTools
160
160
  end
161
161
 
162
162
  def self.number_multiplier?(number)
163
- [10,100,1_000,10_000,100_000_000].include? number
163
+ [10, 100, 1_000, 10_000, 100_000_000].include? number
164
164
  end
165
165
 
166
166
 
@@ -84,18 +84,18 @@ module ZhongwenTools
84
84
  # https://www.debuggex.com/r/_9kbxA6f00gIGiVo
85
85
  # NOTE: you might need to change the order of these regexes for more accurate matching of some pinyin.
86
86
  {
87
- :nl_regex => /([nN]eng?|[lnLN](a(i|ng?|o)?|e(i|ng)?|i(ang|a[on]?|e|ng?|u)?|o(ng?|u)|u(o|i|an?|n)?|ve?))/,
88
- :bpm_regex => /([mM]iu|[pmPM]ou|[bpmBPM](o|e(i|ng?)?|a(ng?|i|o)?|i(e|ng?|a[no])?|u))/,
89
- :f_regex => /([fF](ou?|[ae](ng?|i)?|u))/,
90
- :dt_regex => /([dD](e(i|ng?)|i(a[on]?|u))|[dtDT](a(i|ng?|o)?|e(i|ng)?|i(a[on]?|e|ng|u)?|o(ng?|u)|u(o|i|an?|n)?))/,
91
- :gkh_regex => /([ghkGHK](a(i|ng?|o)?|e(i|ng?)?|o(u|ng)|u(a(i|ng?)?|i|n|o)?))/,
92
- :zczhch_regex => /([zZ]h?ei|[czCZ]h?(e(ng?)?|o(ng?|u)?|ao|u?a(i|ng?)?|u?(o|i|n)?))/,
93
- :ssh_regex => /([sS]ong|[sS]hua(i|ng?)?|[sS]hei|[sS][h]?(a(i|ng?|o)?|en?g?|ou|u(a?n|o|i)?|i))/,
94
- :r_regex => /([rR]([ae]ng?|i|e|ao|ou|ong|u[oin]|ua?n?))/,
95
- :jqx_regex => /([jqxJQX](i(a(o|ng?)?|[eu]|ong|ng?)?|u(e|a?n)?))/,
96
- :aeo_regex => /(([aA](i|o|ng?)?|[oO]u?|[eE](i|ng?|r)?))/,
97
- :w_regex => /([wW](a(i|ng?)?|o|e(i|ng?)?|u))/,
98
- :y_regex => /[yY](a(o|ng?)?|e|in?g?|o(u|ng)?|u(e|a?n)?)/
87
+ nl_regex: /([nN]eng?|[lnLN](a(i|ng?|o)?|e(i|ng)?|i(ang|a[on]?|e|ng?|u)?|o(ng?|u)|u(o|i|an?|n)?|ve?))/,
88
+ bpm_regex: /([mM]iu|[pmPM]ou|[bpmBPM](o|e(i|ng?)?|a(ng?|i|o)?|i(e|ng?|a[no])?|u))/,
89
+ f_regex: /([fF](ou?|[ae](ng?|i)?|u))/,
90
+ dt_regex: /([dD](e(i|ng?)|i(a[on]?|u))|[dtDT](a(i|ng?|o)?|e(i|ng)?|i(a[on]?|e|ng|u)?|o(ng?|u)|u(o|i|an?|n)?))/,
91
+ gkh_regex: /([ghkGHK](a(i|ng?|o)?|e(i|ng?)?|o(u|ng)|u(a(i|ng?)?|i|n|o)?))/,
92
+ zczhch_regex: /([zZ]h?ei|[czCZ]h?(e(ng?)?|o(ng?|u)?|ao|u?a(i|ng?)?|u?(o|i|n)?))/,
93
+ ssh_regex: /([sS]ong|[sS]hua(i|ng?)?|[sS]hei|[sS][h]?(a(i|ng?|o)?|en?g?|ou|u(a?n|o|i)?|i))/,
94
+ r_regex: /([rR]([ae]ng?|i|e|ao|ou|ong|u[oin]|ua?n?))/,
95
+ jqx_regex: /([jqxJQX](i(a(o|ng?)?|[eu]|ong|ng?)?|u(e|a?n)?))/,
96
+ aeo_regex: /(([aA](i|o|ng?)?|[oO]u?|[eE](i|ng?|r)?))/,
97
+ w_regex: /([wW](a(i|ng?)?|o|e(i|ng?)?|u))/,
98
+ y_regex: /[yY](a(o|ng?)?|e|in?g?|o(u|ng)?|u(e|a?n)?)/
99
99
  }
100
100
  end
101
101