class SecurityTrails::Client
Constants
- API_KEY_HEADER
- HOST
- URL
- VERSION
Attributes
api_key[R]
Public Class Methods
new(api_key)
click to toggle source
# File lib/securitytrails/client.rb, line 15 def initialize(api_key) @api_key = api_key end
Private Instance Methods
get(path, params = {}, &block)
click to toggle source
# File lib/securitytrails/client.rb, line 52 def get(path, params = {}, &block) url = url_for(path) url.query = URI.encode_www_form(params) get = Net::HTTP::Get.new(url) get.add_field(API_KEY_HEADER, api_key) request(get, &block) end
https_options()
click to toggle source
# File lib/securitytrails/client.rb, line 25 def https_options if proxy = ENV["HTTPS_PROXY"] || ENV["https_proxy"] uri = URI(proxy) { proxy_address: uri.hostname, proxy_port: uri.port, proxy_from_env: false, use_ssl: true } else { use_ssl: true } end end
post(path, params = {}, &block)
click to toggle source
# File lib/securitytrails/client.rb, line 61 def post(path, params = {}, &block) url = url_for(path) post = Net::HTTP::Post.new(url) post.body = params.is_a?(Hash) ? params.to_json : params.to_s post.add_field(API_KEY_HEADER, api_key) request(post, &block) end
request(req) { |parse| ... }
click to toggle source
# File lib/securitytrails/client.rb, line 39 def request(req) Net::HTTP.start(HOST, 443, https_options) do |http| response = http.request(req) raise(Error, "unsupported response code returned: #{response.code}") unless response.code == "200" if response["Content-Type"].to_s.include? "application/json" yield JSON.parse(response.body) else yield response.body end end end
url_for(path)
click to toggle source
# File lib/securitytrails/client.rb, line 21 def url_for(path) URI(URL + path) end