module EasyGeoIP::Client

Public Class Methods

get(*args, &block) click to toggle source
# File lib/easy_geoip/client.rb, line 7
def self.get(*args, &block)
  connection.get(*args, &block)
rescue Faraday::ClientError => error
  handle_error(error)
end
get_json(*args, &block) click to toggle source
# File lib/easy_geoip/client.rb, line 13
def self.get_json(*args, &block)
  body = get(*args, &block).body
  JSON.parse(body)
end

Private Class Methods

connection() click to toggle source
# File lib/easy_geoip/client.rb, line 20
def self.connection
  @connection ||= Faraday::Connection.new do |connection|
    connection.adapter Faraday.default_adapter
    connection.use Faraday::Response::RaiseError
  end
end
handle_error(error) click to toggle source
# File lib/easy_geoip/client.rb, line 27
def self.handle_error(error)
  case error
  when Faraday::ConnectionFailed
    raise EasyGeoIP::Error::ConnectionFailed.new error
  when Faraday::ResourceNotFound
    raise EasyGeoIP::Error::ResourceNotFound.new error
  when Faraday::TimeoutError
    raise EasyGeoIP::Error::TimeoutError.new error
  else # Faraday::ClientError
    raise EasyGeoIP::Error::ClientError.new error
  end
end