class Hiragana

Hiragana Class

Public Class Methods

new() click to toggle source
# File lib/kita/hiragana.rb, line 26
def initialize
  @previous = []
end

Public Instance Methods

question() click to toggle source
# File lib/kita/hiragana.rb, line 30
def question
  # Keep selecting a new character at random until it's
  # different to any in the 'previous' array
  chars = HIRAGANA.sample(4)
  chars = HIRAGANA.sample(4) while @previous.include? chars[0]
  question = build_question(chars)
  # Log character to ensure no character from the last 10 is repeated
  log_character(chars[0])
  question
end

Private Instance Methods

build_question(chars) click to toggle source
# File lib/kita/hiragana.rb, line 48
def build_question(chars)
  {
    question: chars[0],
    type: 'hiragana',
    answer: chars[0].romaji,
    choices: [
      chars[1].romaji,
      chars[2].romaji,
      chars[3].romaji
    ]
  }
end
log_character(character) click to toggle source
# File lib/kita/hiragana.rb, line 43
def log_character(character)
  @previous.shift if @previous.size > 9
  @previous.push character
end