module Manga::Tools::Http
HTTP client class
Public Class Methods
connection(url, session_id)
click to toggle source
@param url [String] an url string, eg: `example.com` @param session_id [String, nil] A Session
ID string or nil @return [Faraday::Connection] a connection object
# File lib/manga/tools/http.rb, line 14 def self.connection(url, session_id) headers = { 'User-Agent' => user_agent } headers['X-Session-ID'] = session_id if session_id @connection = Faraday.new(url: url, headers: headers) do |f| # f.response :logger f.response :raise_error end end
connection_url(url)
click to toggle source
@param url [URI] A URL instance. @return [String] Returns the URL to connect to.
If the port is not a standard port (80 or 443), the port number is included.
# File lib/manga/tools/http.rb, line 45 def self.connection_url(url) if [80, 443].include?(url.port) "#{url.scheme}://#{url.host}" else "#{url.scheme}://#{url.host}:#{url.port}" end end
get(url, session_id)
click to toggle source
@param url [String] an url string, eg: `example.com/path/to/object` @param session_id [String, nil] A Session
ID string or nil @return [Faraday::Response] a response object
# File lib/manga/tools/http.rb, line 27 def self.get(url, session_id) u = URI.parse(url) connection(connection_url(u), session_id).get(u.request_uri) end
post(url, session_id, params)
click to toggle source
# File lib/manga/tools/http.rb, line 32 def self.post(url, session_id, params) u = URI.parse(url) connection(connection_url(u), session_id).post do |req| req.headers['Content-Type'] = 'application/json' req.url u.request_uri req.body = params.to_json end end
user_agent()
click to toggle source
@return [String] Returns a user agent string
# File lib/manga/tools/http.rb, line 54 def self.user_agent @user_agent ||= "manga-tools #{Manga::Tools::VERSION}" end