zhongwen_tools 0.12.4 → 0.15.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/README.md +74 -165
- data/Rakefile +0 -1
- data/lib/zhongwen_tools/{string/caps.rb → caps.rb} +19 -1
- data/lib/zhongwen_tools/core.rb +19 -0
- data/lib/zhongwen_tools/core_ext/integer.rb +8 -0
- data/lib/zhongwen_tools/core_ext/string.rb +10 -0
- data/lib/zhongwen_tools/fullwidth.rb +102 -0
- data/lib/zhongwen_tools/integer_extension.rb +31 -0
- data/lib/zhongwen_tools/number/number_table.rb +44 -0
- data/lib/zhongwen_tools/number.rb +221 -0
- data/lib/zhongwen_tools/regex.rb +38 -22
- data/lib/zhongwen_tools/romanization/pinyin.rb +231 -0
- data/lib/zhongwen_tools/romanization/{pyn_to_py.rb → pinyin_table.rb} +2 -1
- data/lib/zhongwen_tools/romanization/romanization_table.rb +425 -0
- data/lib/zhongwen_tools/romanization.rb +199 -136
- data/lib/zhongwen_tools/{string/ruby19.rb → ruby_19.rb} +1 -2
- data/lib/zhongwen_tools/{conversion → script}/conversion_data +0 -0
- data/lib/zhongwen_tools/{conversion.rb → script.rb} +21 -34
- data/lib/zhongwen_tools/string_extension.rb +136 -0
- data/lib/zhongwen_tools/unicode.rb +25 -0
- data/lib/zhongwen_tools/uri.rb +14 -0
- data/lib/zhongwen_tools/version.rb +1 -1
- data/lib/zhongwen_tools/zhongwen.rb +29 -0
- data/lib/zhongwen_tools.rb +2 -3
- data/test/test_caps.rb +26 -0
- data/test/test_core.rb +13 -0
- data/test/test_fullwidth.rb +30 -0
- data/test/test_helper.rb +4 -12
- data/test/test_helpers/unload_zhongwen_tools_script.rb +5 -0
- data/test/test_integer_extension.rb +34 -0
- data/test/test_number.rb +79 -0
- data/test/test_pinyin.rb +68 -0
- data/test/test_regex.rb +41 -0
- data/test/test_romanization.rb +110 -133
- data/test/{test_conversion.rb → test_script.rb} +41 -44
- data/test/test_string_extension.rb +94 -0
- data/test/test_unicode.rb +27 -0
- data/test/test_uri.rb +16 -0
- data/test/test_zhongwen.rb +37 -0
- data/zhongwen_tools.gemspec +1 -1
- metadata +93 -52
- data/Gemfile.1.8.7 +0 -8
- data/lib/zhongwen_tools/conversion/string.rb +0 -19
- data/lib/zhongwen_tools/integer.rb +0 -28
- data/lib/zhongwen_tools/numbers.rb +0 -195
- data/lib/zhongwen_tools/regex/ruby18.rb +0 -15
- data/lib/zhongwen_tools/romanization/conversion_table.rb +0 -425
- data/lib/zhongwen_tools/romanization/detect.rb +0 -141
- data/lib/zhongwen_tools/romanization/string.rb +0 -36
- data/lib/zhongwen_tools/string/fullwidth.rb +0 -85
- data/lib/zhongwen_tools/string/ruby18.rb +0 -96
- data/lib/zhongwen_tools/string.rb +0 -164
- data/test/test_integer.rb +0 -31
- data/test/test_numbers.rb +0 -68
- data/test/test_string.rb +0 -133
data/test/test_string.rb
DELETED
@@ -1,133 +0,0 @@
|
|
1
|
-
#encoding: utf-8
|
2
|
-
$:.unshift File.join(File.dirname(__FILE__),'..','lib')
|
3
|
-
require './test/test_helper'
|
4
|
-
require 'zhongwen_tools/string'
|
5
|
-
|
6
|
-
class String
|
7
|
-
include ZhongwenTools::String
|
8
|
-
end
|
9
|
-
|
10
|
-
class TestString < Minitest::Test
|
11
|
-
|
12
|
-
def test_size
|
13
|
-
assert_equal 2, @str.size
|
14
|
-
assert_equal 2, ZhongwenTools::String.size(@str)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_chars
|
18
|
-
assert_equal %w(中 文), @str.chars
|
19
|
-
|
20
|
-
assert_equal %w(中 文), ZhongwenTools::String.chars(@str)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_reverse
|
24
|
-
assert_equal '文中', '中文'.reverse
|
25
|
-
|
26
|
-
assert_equal '文中', ZhongwenTools::String.reverse('中文')
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_ascii
|
30
|
-
refute @str.ascii?
|
31
|
-
assert 'zhongwen'.ascii?
|
32
|
-
assert @str.multibyte?
|
33
|
-
|
34
|
-
refute ZhongwenTools::String.ascii? @str
|
35
|
-
assert ZhongwenTools::String.ascii? 'zhongwen'
|
36
|
-
assert ZhongwenTools::String.multibyte? @str
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_halfwidth
|
40
|
-
str = 'hello'
|
41
|
-
refute str.halfwidth?
|
42
|
-
assert_equal str.to_halfwidth, 'hello'
|
43
|
-
assert str.to_halfwidth.halfwidth?
|
44
|
-
|
45
|
-
refute ZhongwenTools::String.halfwidth? str
|
46
|
-
assert_equal ZhongwenTools::String.to_halfwidth(str), 'hello'
|
47
|
-
assert ZhongwenTools::String.halfwidth?(ZhongwenTools::String.to_halfwidth(str))
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_fullwidth
|
51
|
-
str = 'hello'
|
52
|
-
assert str.fullwidth?
|
53
|
-
refute @str.fullwidth?
|
54
|
-
|
55
|
-
assert ZhongwenTools::String.fullwidth? str
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_uri_encode
|
59
|
-
url = 'http://www.3000hanzi.com/chinese-to-english/definition/好'
|
60
|
-
assert_equal URI.encode('好'), '好'.uri_encode
|
61
|
-
|
62
|
-
assert_equal "http://www.3000hanzi.com/chinese-to-english/definition/#{URI.encode '好'}", ZhongwenTools::String.uri_encode(url)
|
63
|
-
assert_equal "http://www.3000hanzi.com/chinese-to-english/definition/#{URI.encode '好'}", url.uri_encode
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_uri_escape
|
67
|
-
url = 'http://www.3000hanzi.com/chinese-to-english/definition/好'
|
68
|
-
regex = Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")
|
69
|
-
|
70
|
-
assert_equal URI.escape(url, regex), ZhongwenTools::String.uri_escape(url)
|
71
|
-
assert_equal URI.escape(url, regex), url.uri_escape
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_has_zh
|
75
|
-
assert @str.has_zh?
|
76
|
-
refute @hw.has_zh?
|
77
|
-
refute @fw.has_zh?
|
78
|
-
refute 'zhong1-guo'.has_zh?
|
79
|
-
|
80
|
-
assert ZhongwenTools::String.has_zh? @str
|
81
|
-
refute ZhongwenTools::String.has_zh? @hw
|
82
|
-
refute ZhongwenTools::String.has_zh? @fw
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_is_zh
|
86
|
-
assert @str.zh?
|
87
|
-
assert @zh_punc.zh?
|
88
|
-
|
89
|
-
assert ZhongwenTools::String.zh? @str
|
90
|
-
assert ZhongwenTools::String.zh? @zh_punc
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_codepoint
|
94
|
-
assert_equal "\\u4e2d\\u6587", @str.to_codepoint
|
95
|
-
assert_equal '羊', 'u7f8a'.from_codepoint
|
96
|
-
assert_equal '羊', '\\u7f8a'.from_codepoint
|
97
|
-
|
98
|
-
assert_equal "\\u4e2d\\u6587", ZhongwenTools::String.to_codepoint(@str)
|
99
|
-
assert_equal '羊', ZhongwenTools::String.from_codepoint('u7f8a')
|
100
|
-
assert_equal '羊', ZhongwenTools::String.from_codepoint('\\u7f8a')
|
101
|
-
end
|
102
|
-
|
103
|
-
|
104
|
-
def test_punctuation
|
105
|
-
assert ZhongwenTools::String.has_zh_punctuation?(@zh_punc)
|
106
|
-
|
107
|
-
assert @zh_punc.has_zh_punctuation?
|
108
|
-
|
109
|
-
refute ZhongwenTools::String.strip_zh_punctuation(@zh_punc) == @zh_punc, "#{@zh_punc} should not equal #{ZhongwenTools::String.strip_zh_punctuation(@zh_punc)}"
|
110
|
-
refute @zh_punc.strip_zh_punctuation == @zh_punc, "#{@zh_punc} should not equal #{ @zh_punc.strip_zh_punctuation} "
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_capitalization
|
114
|
-
assert_equal @py_caps[:l], ZhongwenTools::String.downcase(@py_caps[:c])
|
115
|
-
assert_equal @py_caps[:l], @py_caps[:u].downcase
|
116
|
-
|
117
|
-
assert_equal @py_caps[:c], ZhongwenTools::String.capitalize(@py_caps[:l])
|
118
|
-
assert_equal @py_caps[:c], @py_caps[:l].capitalize
|
119
|
-
|
120
|
-
assert_equal @py_caps[:u], @py_caps[:l].upcase
|
121
|
-
assert_equal @py_caps[:u], ZhongwenTools::String.upcase(@py_caps[:l])
|
122
|
-
assert_equal 'HELLO', @fw.upcase
|
123
|
-
end
|
124
|
-
|
125
|
-
def setup
|
126
|
-
@str = '中文'
|
127
|
-
@fw = 'hello'
|
128
|
-
@hw = 'hello'
|
129
|
-
@zh_punc = '不错吧!'
|
130
|
-
@py_caps = {:c => 'Àomén', :l => 'àomén', :u => 'ÀOMÉN'}
|
131
|
-
end
|
132
|
-
|
133
|
-
end
|