class String
Constants
- HEPBURN
- HEPBURNTAB
- HEPPAT
- KANPAT
- KANROM
- KUNPAT
- KUNREI
- KUNREITAB
This table is imported from KAKASI <kakasi.namazu.org/> and modified.
- ROMKAN
- ROMPAT
Sort in long order so that a longer Romaji sequence precedes.
- TO_HEPBURN
- TO_KUNREI
Public Instance Methods
consonant?()
click to toggle source
# File lib/romkan.rb, line 283 def consonant? if /^[ckgszjtdhfpbmyrwxn]$/.match(self) true else false end end
expand_consonant()
click to toggle source
‘z’ => (za ze zi zo zu)
# File lib/romkan.rb, line 300 def expand_consonant ROMKAN.keys.select do |x| /^#{self}.$/ =~ x end end
normalize_double_n()
click to toggle source
FIXME: ad hod solution tanni => tan’i kannji => kanji hannnou => han’nou hannnya => han’nya
# File lib/romkan.rb, line 220 def normalize_double_n self.gsub(/nn/, "n'").gsub(/n\'(?=[^aiueoyn]|$)/, "n") end
normalize_double_n!()
click to toggle source
# File lib/romkan.rb, line 224 def normalize_double_n! self.gsub!(/nn/, "n'") self.gsub!(/n\'(?=[^aiueoyn]|$)/, "n") self end
to_hepburn()
click to toggle source
Romaji -> Romaji Normalize into Hepburn sequences. e.g. kannzi -> kanji, tiezo -> chiezo
# File lib/romkan.rb, line 247 def to_hepburn tmp = self.normalize_double_n tmp.gsub(/\G((?:#{HEPPAT})*?)(#{KUNPAT})/) { $1 + TO_HEPBURN[$2]} end
to_hepburn!()
click to toggle source
# File lib/romkan.rb, line 272 def to_hepburn! self.normalize_double_n! self.gsub!(/\G((?:#{HEPPAT})*?)(#{KUNPAT})/) { $1 + TO_HEPBURN[$2]} self end
to_kana()
click to toggle source
Romaji -> Kana It can handle both Hepburn and Kunrei sequences.
# File lib/romkan.rb, line 232 def to_kana tmp = self.normalize_double_n tmp.gsub(/(#{ROMPAT})/) { ROMKAN[$1] } end
to_kana!()
click to toggle source
# File lib/romkan.rb, line 260 def to_kana! self.normalize_double_n! self.gsub!(/(#{ROMPAT})/) { ROMKAN[$1] } self end
to_kunrei()
click to toggle source
Romaji -> Romaji Normalize into Kunrei sequences. e.g. kanji -> kanzi, chiezo -> tiezo
# File lib/romkan.rb, line 255 def to_kunrei tmp = self.normalize_double_n tmp.gsub(/\G((?:#{KUNPAT})*?)(#{HEPPAT})/) { $1 + TO_KUNREI[$2]} end
to_kunrei!()
click to toggle source
# File lib/romkan.rb, line 278 def to_kunrei! tmp = self.normalize_double_n! tmp.gsub!(/\G((?:#{KUNPAT})*?)(#{HEPPAT})/) { $1 + TO_KUNREI[$2]} end
to_roma()
click to toggle source
Kana -> Romaji.
Return Hepburn sequences.
# File lib/romkan.rb, line 239 def to_roma tmp = self.gsub(/(#{KANPAT})/) { KANROM[$1] } tmp.gsub(/n'(?=[^aeiuoyn]|$)/, "n") end
to_roma!()
click to toggle source
# File lib/romkan.rb, line 266 def to_roma! self.gsub!(/(#{KANPAT})/) { KANROM[$1] } self.gsub!(/n'(?=[^aeiuoyn]|$)/, "n") self end
vowel?()
click to toggle source
# File lib/romkan.rb, line 291 def vowel? if /^[aeiou]$/.match(self) true else false end end