Class: HanziConverter
- Inherits:
-
Object
- Object
- HanziConverter
- Defined in:
- lib/hanzi-converter.rb
Class Attribute Summary collapse
-
.data ⇒ Object
Returns the value of attribute data.
Class Method Summary collapse
Class Attribute Details
.data ⇒ Object
Returns the value of attribute data.
5 6 7 |
# File 'lib/hanzi-converter.rb', line 5 def data @data end |
Class Method Details
.load_data ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/hanzi-converter.rb', line 7 def load_data return if @data @data = [] File.open('lib/data/cedict_ts.u8').each_line do |line| next if line.start_with?('#') line = line.force_encoding('utf-8') # CC-CEDICT format: # Traditional Simplified [pin1 yin1] /English equivalent 1/equivalent 2/ line_data = {} line_data[:traditional] = line[0, line.index(' ')] line = line[line.index(' ') + 1, line.length] line_data[:simplified] = line[0, line.index(' ')] line = line[line.index('['), line.length] line_data[:pinyin] = line[1, line.index(']') - 1] line = line[line.index('/'), line.rindex('/')] line_data[:english] = line[1, line.rindex('/') - 1] @data << line_data end end |
.to_pinyin(text, options = {}) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/hanzi-converter.rb', line 34 def (text, ={}) load_data if @data.nil? entry = @data.find do |word| word[:simplified] == text || word[:traditional] == text end entry[:pinyin].gsub("\s", '') if entry end |