class Katakana

Public Class Methods

new() click to toggle source
# File lib/katakana.rb, line 6
def initialize
  @alphabet = {'a'=>'ア', 'i'=>'イ', 'u'=>'ウ', 'e'=>'エ', 'o'=>'オ',
               'ka'=>'カ', 'ki'=>'キ', 'ku'=>'ク', 'ke'=>'ケ', 'ko'=>'コ',
               'sa'=>'サ', 'shi'=>'シ', 'su'=>'ス', 'se'=>'セ', 'so'=>'ソ',
               'ta'=>'タ', 'chi'=>'チ', 'tsu'=>'ツ','te'=>'テ', 'to'=>'ト',
               'na'=>'ナ', 'ni'=>'ニ', 'nu'=>'ヌ', 'ne'=>'ネ', 'no'=>'ノ',
               'ha'=>'ハ', 'hi'=>'ヒ', 'fu'=>'フ', 'he'=>'ヘ', 'ho'=>'ホ',
               'ma'=>'マ', 'mi'=>'ミ', 'mu'=>'ム', 'me'=>'メ', 'mo'=>'モ',
               'ya'=>'ヤ', 'yu'=>'ユ', 'yo'=>'ヨ',
               'ra'=>'ラ', 'ri'=>'リ', 'ru'=>'ル', 're'=>'レ', 'ro'=>'ロ',
               'wa'=>'ワ', 'wo'=>'ヲ',
               'n'=>"ン",

               'ga'=>'ガ', 'gi'=>'ギ', 'gu'=>'グ', 'ge'=>'ゲ', 'go'=>'ゴ',
               'za'=>'ザ', 'ji'=>'ジ', 'zu'=>'ズ', 'ze'=>'ゼ', 'zo'=>'ゾ',
               'da'=>'ダ', 'dji'=>'ヂ', 'dzu'=>'ヅ', 'de'=>'デ', 'do'=>'ド',
               'ba'=>'バ', 'bi'=>'ビ', 'bu'=>'ブ', 'be'=>'ベ', 'bo'=>'ボ',
               'pa'=>'パ', 'pi'=>'ピ', 'pu'=>'プ', 'pe'=>'ペ', 'po'=>'ポ',

               'kya'=>'キャ', 'kyu'=>'キュ', 'kyo'=>'キョ',
               'gya'=>'ギャ', 'gyu'=>'ギュ', 'gyo'=>'ギョ',
               'sha'=>'シャ', 'shu'=>'シュ', 'sho'=>'ショ',
               'ja'=>'ジャ', 'ju'=>'ジュ', 'jo'=>'ジョ',
               'cha'=>'チャ', 'chu'=>'チュ', 'cho'=>'チョ',
               'nya'=>'ニャ', 'nyu'=>'ニュ', 'nyo'=>'ニョ',
               'hya'=>'ヒャ', 'hyu'=>'ヒュ', 'hyo'=>'ヒョ',
               'bya'=>'ビャ', 'byu'=>'ビュ', 'byo'=>'ビョ',
               'pya'=>'ピャ', 'pyu'=>'ピュ', 'pyo'=>'ピョ',
               'mya'=>'ミャ', 'myu'=>'ミャ', 'myo'=>'ミョ',
               'rya'=>'リャ', 'ryu'=>'リュ', 'ryo'=>'リョ'}


  puts 'Romaji to Katakana'
  puts '(clear) Clear (save) Save (quit) Main menu (alphabet) katakana alphabet'
  puts '(Type one letter by time ex: ru+ENTER, bi+ENTER => ルビ)'

  word = [] # array to store the letters typed

  letter=ask()
  while letter != 'quit' do
    word << @alphabet[letter] # appendind letters into the word array
    
    if letter == 'c' or letter == 'clear' then
      word.clear()
      puts 'Your word is empty!'
    elsif letter == ' ' then
      puts 'Space inserted. Start a new word!'
      word << letter
      word.each do |w| print "#{w}" end # iterating values
    elsif letter == 'save'
      print 'Enter the file name: '
      filename = gets.chomp.downcase
      s = Save.new(filename, word.join) # join method put all the letters together into a single string
      puts 'Word saved!'
      word.clear()
    elsif letter == 'alphabet' then
      help(@alphabet)
    elsif !@alphabet.has_key?(letter) then
      puts "This letter is not part of the Hiragana Alphabet!"
    else
      word.each do |w| print "#{w}" end # iterating values
    end
    letter = ask()
  end
  puts "Choose an alphabet to start typing:"
  puts "(h) Hiragana (k) Katakana\n\n"
end

Public Instance Methods

ask() click to toggle source
# File lib/katakana.rb, line 74
def ask() print("\n>"); gets.chomp.downcase end
help(alphabet) click to toggle source
# File lib/katakana.rb, line 76
def help(alphabet)
  puts "Hiragana Alphabet:"
  alphabet.each do |k, v|
    puts "#{k}: #{v} "
  end
end