class NHKore::Missingno

@author Jonathan Bradley Whited @since 0.2.0

Attributes

kanas[R]
kanjis[R]

Public Class Methods

new(data) click to toggle source

@param data [News,Article,Array<Word>]

Calls superclass method
# File lib/nhkore/missingno.rb, line 25
def initialize(data)
  super()

  @kanas = {}
  @kanjis = {}

  # News?
  if data.respond_to?(:articles)
    add_news(data)
  # Article?
  elsif data.respond_to?(:words)
    add_article(data)
  else
    add_words(data)
  end
end

Public Instance Methods

add_article(article) click to toggle source
# File lib/nhkore/missingno.rb, line 42
def add_article(article)
  add_words(article.words.values)
end
add_news(news) click to toggle source
# File lib/nhkore/missingno.rb, line 46
def add_news(news)
  news.articles.each_value do |article|
    add_article(article)
  end
end
add_words(words) click to toggle source
# File lib/nhkore/missingno.rb, line 52
def add_words(words)
  words.each do |word|
    # We only want ones that are both filled in because
    #   Word.scrape_ruby_tag() will raise an error if either is empty.
    next if Util.empty_web_str?(word.kana) || Util.empty_web_str?(word.kanji)

    if !kanas.key?(word.kana)
      kanas[word.kana] = word
    end

    if !kanjis.key?(word.kanji)
      kanjis[word.kanji] = word
    end
  end
end
kana_from_kanji(kanji) click to toggle source
# File lib/nhkore/missingno.rb, line 68
def kana_from_kanji(kanji)
  word = @kanjis[kanji]

  return word.nil? ? nil : word.kana
end
kanji_from_kana(kana) click to toggle source
# File lib/nhkore/missingno.rb, line 74
def kanji_from_kana(kana)
  word = @kanas[kana]

  return word.nil? ? nil : word.kanji
end