class KanjiReader::Perform

Attributes

application_id[RW]
grade[RW]
hiragana[RW]
kanji[RW]
roma[RW]
uri[RW]

Public Class Methods

new(application_id, kanji, options={}) click to toggle source
# File lib/KanjiReader.rb, line 20
def initialize(application_id, kanji, options={})
  @application_id = application_id
  grade = GRADE_HASH[:basic] if GRADE_HASH[options[:grade]]

  @uri = URI.escape "https://jlp.yahooapis.jp/FuriganaService/V1/furigana?appid=#{application_id}&grade=#{grade}&sentence=#{kanji}"

  conn = Faraday::Connection.new(:url => uri) do |builder|
    builder.use Faraday::Request::UrlEncoded
    builder.use Faraday::Response::Logger
    builder.use Faraday::Adapter::NetHttp
  end

  xml = conn.get(uri).body
  base_path = '//Result//WordList//Word'

  xml_doc  = Nokogiri::XML(xml).remove_namespaces!

  @kanji     = xml_doc.xpath(base_path + '//Surface').text
  @hiragana  = xml_doc.xpath(base_path + '//Furigana').text
  @roma      = xml_doc.xpath(base_path + '//Roman').text
end

Public Instance Methods

katakana() click to toggle source
# File lib/KanjiReader.rb, line 42
def katakana
  NKF.nkf('-w --katakana', self.hiragana)
end