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