#Zhongwen Tools: Methods for dealing with Chinese.
##INSTALLATION
Install as a gem
$ [sudo] gem install zhongwen_tools
Usage
You can monkey patch the String class or use refinements (Ruby 2.0+).
Monkey Patch
You can monkey patch the String class.
require 'zhongwen_tools'
require 'zhongwen_tools/core_ext/string'
# normalizes the behavior between Ruby 1.9.2, 1.9.3, 2+
'中国'chars #=> ['中', '国']
'zhōngguó'.capitalize #=> 'Zhōngguó'
'Zhōngguó'.zh_downcase #=> 'zhōngguó'
'ālābó'.zh_upcase #=> 'ĀLĀBÓ'
'你好Kailin!'.has_zh? # => true
'你好Kailin!'.has_zh_punctuation? # => true
'你好'.zh? #=> true
'你好'.uri_encode #=> "%E4%BD%A0%E5%A5%BD"
'你好'.uri_escape #=> "%E4%BD%A0%E5%A5%BD"
'你好!'.strip_zh_punctuation #=> '你好'
'hello'.ascii? #=> true
'你好'.multibyte? #=> true
'hello'.halfwidth? #=> false
'hello'.fullwidth? #=> true
'hello'.to_halfwidth? #=> 'hello'
'\u4e2d\u6587'.from_codepoint #=> '中文'
'中文'.to_codepoint #=> '\u4e2d\u6587'
'Zhong1guo2'.to_pinyin #=> 'Zhōngguó'
'Zhong1guo2'.to_py #=> 'Zhōngguó'
'Zhōngguó'.to_py #=> 'Zhong1guo2'
'nǐ hǎo'.to_bpmf #=> 'ㄋㄧ3 ㄏㄠ3'
'nǐ hǎo'.to_zyfh #=> 'ㄋㄧ3 ㄏㄠ3'
'nǐ hǎo'.to_zhyfh #=> 'ㄋㄧ3 ㄏㄠ3'
'nǐ hǎo'.to_bopomofo #=> 'ㄋㄧ3 ㄏㄠ3'
'nǐ hǎo'.to_yale #=> 'ni3 hau3',
'nǐ hǎo'.to_typy #=> 'ni3 hao3',
'nǐ hǎo'.to_tongyong #=> 'ni3 hao3',
'nǐ hǎo'.to_tongyong_pinyin #=> 'ni3 hao3',
'nǐ hǎo'.to_wg #=> 'ni3 hao3',
'nǐ hǎo'.to_wade_giles #=> 'ni3 hao3',
'nǐ hǎo'.to_mps2 #=> 'ni3 hau3'
'nǐ hǎo'.romanization? :py
'nǐ hǎo'.py? #=> true
'nǐ hǎo'.pyn? # false
'nǐ hǎo'.bpmf? # false
'nǐ hǎo'.wg? # false
'nǐ hǎo'.yale? # false
'nǐ hǎo'.typy? # false
'nǐ hǎo'.mps2? # false
'你们好'.zhs? #=> true
'你们好'.zht? #=> false
'你們好'.to_zhs #=> '你们好'
'你们好'.to_zht #=> '你們好'
'金枪鱼'.to_zhtw #=> '鮪魚'
'鮪魚'.to_zhcn #=> '金枪鱼'
'金枪鱼'.to_zhhk #=> '吞拿魚'
Integer Extensions
You can also monkey patch the Integer class! require 'zhongwen_tools' require 'zhongwen_tools/core_ext/integer'
1.to_pyn #=> 'yi1'
10_000.to_zht #=> '一萬'
10_000.to_zhs #=> '一万'
Refinements (Ruby > 2.0 only)
You can also use refinements, to refine the string or integer class.
# some_class.rb
require 'zhongwen_tools'
using ZhongwenTools
class SomeClass
def hi
'你们好'.to_zht
end
end
SomeClass.new.hi #=> 你們好
ZhongwenTools::Core
The core functionality of ZhongwenTools excludes converting between simplified and traditional Chinese. You can use it by requiring 'zhongwen_tools/core' instead of 'zhongwen_tools'
require 'zhongwen_tools/core'
require 'zhongwen_tools/core_ext/string'
'ni3 hao3'.to_pinyin #=> 'nǐ hǎo'
'你們好'.to_zhs #=> NoMethodError