Sha256: c8faf6d9add2b12ff187c821fbc68ab9914ea6b804caa115fa1b1e0aad7bec44

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

require 'rexml/document'

module Nele
  class MsTranslator < Nele::GenericTranslator
    def config
      @config ||= { 
      }
    end

    def build_request(str)
      @uri = parse_uri(build_uri(str))
    end
    
    def build_uri(str)
      config[:url] +
        "?appId=" + config[:appId] +
        "&text=" + str +
        "&from=" + config[:from] +
        "&to=" + config[:to]
    end

    def connect
      begin
        http = Net::HTTP.new(@uri.host, @uri.port)
        http.use_ssl = false
        request = Net::HTTP::Get.new(@uri.request_uri)
        http.request(request).body
      rescue => err
        raise Nele::ConnectionError, err
      end
    end

    def parse_response(res)
      doc = REXML::Document.new(res)
      unless doc.elements['string']
        error_message = nil
        doc.elements.each("//p") do |e|
          str = e[0].to_s
          if str.index(":")
            k,v = str.split(":")
            raise TranslatorAPIError, v.strip if k == "Message"
          end
        end
      else
        doc.elements['string'][0].to_s
      end
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nele-0.2.2 lib/nele/ms_translator.rb~