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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.md +74 -165
  4. data/Rakefile +0 -1
  5. data/lib/zhongwen_tools/{string/caps.rb → caps.rb} +19 -1
  6. data/lib/zhongwen_tools/core.rb +19 -0
  7. data/lib/zhongwen_tools/core_ext/integer.rb +8 -0
  8. data/lib/zhongwen_tools/core_ext/string.rb +10 -0
  9. data/lib/zhongwen_tools/fullwidth.rb +102 -0
  10. data/lib/zhongwen_tools/integer_extension.rb +31 -0
  11. data/lib/zhongwen_tools/number/number_table.rb +44 -0
  12. data/lib/zhongwen_tools/number.rb +221 -0
  13. data/lib/zhongwen_tools/regex.rb +38 -22
  14. data/lib/zhongwen_tools/romanization/pinyin.rb +231 -0
  15. data/lib/zhongwen_tools/romanization/{pyn_to_py.rb → pinyin_table.rb} +2 -1
  16. data/lib/zhongwen_tools/romanization/romanization_table.rb +425 -0
  17. data/lib/zhongwen_tools/romanization.rb +199 -136
  18. data/lib/zhongwen_tools/{string/ruby19.rb → ruby_19.rb} +1 -2
  19. data/lib/zhongwen_tools/{conversion → script}/conversion_data +0 -0
  20. data/lib/zhongwen_tools/{conversion.rb → script.rb} +21 -34
  21. data/lib/zhongwen_tools/string_extension.rb +136 -0
  22. data/lib/zhongwen_tools/unicode.rb +25 -0
  23. data/lib/zhongwen_tools/uri.rb +14 -0
  24. data/lib/zhongwen_tools/version.rb +1 -1
  25. data/lib/zhongwen_tools/zhongwen.rb +29 -0
  26. data/lib/zhongwen_tools.rb +2 -3
  27. data/test/test_caps.rb +26 -0
  28. data/test/test_core.rb +13 -0
  29. data/test/test_fullwidth.rb +30 -0
  30. data/test/test_helper.rb +4 -12
  31. data/test/test_helpers/unload_zhongwen_tools_script.rb +5 -0
  32. data/test/test_integer_extension.rb +34 -0
  33. data/test/test_number.rb +79 -0
  34. data/test/test_pinyin.rb +68 -0
  35. data/test/test_regex.rb +41 -0
  36. data/test/test_romanization.rb +110 -133
  37. data/test/{test_conversion.rb → test_script.rb} +41 -44
  38. data/test/test_string_extension.rb +94 -0
  39. data/test/test_unicode.rb +27 -0
  40. data/test/test_uri.rb +16 -0
  41. data/test/test_zhongwen.rb +37 -0
  42. data/zhongwen_tools.gemspec +1 -1
  43. metadata +93 -52
  44. data/Gemfile.1.8.7 +0 -8
  45. data/lib/zhongwen_tools/conversion/string.rb +0 -19
  46. data/lib/zhongwen_tools/integer.rb +0 -28
  47. data/lib/zhongwen_tools/numbers.rb +0 -195
  48. data/lib/zhongwen_tools/regex/ruby18.rb +0 -15
  49. data/lib/zhongwen_tools/romanization/conversion_table.rb +0 -425
  50. data/lib/zhongwen_tools/romanization/detect.rb +0 -141
  51. data/lib/zhongwen_tools/romanization/string.rb +0 -36
  52. data/lib/zhongwen_tools/string/fullwidth.rb +0 -85
  53. data/lib/zhongwen_tools/string/ruby18.rb +0 -96
  54. data/lib/zhongwen_tools/string.rb +0 -164
  55. data/test/test_integer.rb +0 -31
  56. data/test/test_numbers.rb +0 -68
  57. 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