class Papago::Translator

Public Class Methods

new(text) click to toggle source
# File lib/papago/translator.rb, line 3
def initialize(text)
  @request = URI('https://fanyi.youdao.com/openapi.do')
  @request.query = URI.encode_www_form({
    :keyfrom => Papago[:keyfrom],
    :key     => Papago[:key],
    :type    => 'data',
    :doctype => 'json',
    :version => '1.1',
    :q       => text
  })

  build_context!
end

Public Instance Methods

build_context!() click to toggle source
# File lib/papago/translator.rb, line 31
def build_context!
  @context = JSON.parse(@request.read, symbolize_names: true)
end
contents() click to toggle source
# File lib/papago/translator.rb, line 17
def contents
  [
    {
      name: "#{@context.fetch(:query)} [#{@context.dig(:basic, :phonetic)}]",
      contents: [
        {
          name: @context.fetch(:translation).join(%{ }),
          contents: (@context.dig(:basic, :explains) || []).map { |explain| { name: explain } }
        }
      ] + @context.fetch(:web, []).map { |explain| { name: "#{explain.fetch(:key)}: #{explain.fetch(:value).join(%{ })}" } }
    }
  ]
end