Class: WebTranslateIt::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/web_translate_it/connection.rb

Constant Summary collapse

@@api_key =
nil
@@http_connection =
nil
@@debug =
false

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key) ⇒ Connection

Initialize and yield a HTTPS Keep-Alive connection to WebTranslateIt.com

Usage:

WebTranslateIt::Connection.new(api_key) do

# do something with Connection.api_key and Connection.http_connection

end

Or:

WebTranslateIt::Connection.new(api_key) do |http_connection|

http_connection.request(request)

end



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/web_translate_it/connection.rb', line 26

def initialize(api_key) # rubocop:todo Metrics/AbcSize, Metrics/MethodLength
  @@api_key = api_key
  proxy = ENV['http_proxy'] ? URI.parse(ENV['http_proxy']) : Struct.new(:host, :port, :user, :password).new
  http = Net::HTTP::Proxy(proxy.host, proxy.port, proxy.user, proxy.password).new('webtranslateit.com', 443)
  http.use_ssl      = true
  http.open_timeout = http.read_timeout = 60
  http.set_debug_output($stderr) if @@debug
  begin
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER
    @@http_connection = http.start
    yield @@http_connection if block_given?
  rescue OpenSSL::SSL::SSLError
    puts 'Error: Unable to verify SSL certificate.'
    exit 1
  rescue StandardError
    puts $ERROR_INFO
  end
end

Class Method Details

.api_keyObject



49
50
51
# File 'lib/web_translate_it/connection.rb', line 49

def self.api_key
  @@api_key
end

.http_connectionObject



53
54
55
# File 'lib/web_translate_it/connection.rb', line 53

def self.http_connection
  @@http_connection
end

.turn_debug_onObject



45
46
47
# File 'lib/web_translate_it/connection.rb', line 45

def self.turn_debug_on
  @@debug = true
end