class GoogleFish::Request

Attributes

parsed_response[RW]
query[RW]
response[RW]

Public Class Methods

new(query) click to toggle source
# File lib/google_fish.rb, line 29
def initialize(query)
  @query = query
end

Public Instance Methods

perform_translation() click to toggle source
# File lib/google_fish.rb, line 33
def perform_translation
  @response = get
  @parsed_response = parse
end

Private Instance Methods

get() click to toggle source
# File lib/google_fish.rb, line 55
def get
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  req = Net::HTTP::Get.new(uri.request_uri)
  res = http.request(req)
  raise GoogleFish::Request::ApiError unless res.code.to_i == 200
  res.body
end
parse() click to toggle source
# File lib/google_fish.rb, line 65
def parse
  body = JSON.parse(response)
  body["data"]["translations"].first["translatedText"]
end
query_values() click to toggle source
# File lib/google_fish.rb, line 40
def query_values
  {:key => query.key, :q => query.q, :format => query.format,
    :source => query.source, :target => query.target}
end
uri() click to toggle source
# File lib/google_fish.rb, line 45
def uri
  uri = Addressable::URI.new
  uri.host = 'www.googleapis.com'
  uri.path = '/language/translate/v2'
  uri.query_values = query_values
  uri.scheme = 'https'
  uri.port = 443
  uri
end