class GMO::PG::Dispatcher
Attributes
base_url[R]
raise_on_api_error[RW]
Public Class Methods
new(base_url) { |self| ... }
click to toggle source
# File lib/gmo-pg/dispatcher.rb, line 18 def initialize(base_url) @base_url = base_url url = URI.parse(@base_url) @http = Net::HTTP.new(url.host, url.port) @http.use_ssl = true if url.scheme == 'https' yield self if block_given? end
Public Instance Methods
connect() { |self| ... }
click to toggle source
# File lib/gmo-pg/dispatcher.rb, line 35 def connect handle_error do @http.start { yield self if block_given? } end end
dispatch(request)
click to toggle source
# File lib/gmo-pg/dispatcher.rb, line 41 def dispatch(request) req = Net::HTTP::Post.new(request.path) req.body = GMO::PG::Payload.encode(request.payload) handle_error do res = @http.request(req) case res when Net::HTTPSuccess payload = GMO::PG::Payload.decode(res.body) response = request.class.corresponding_response_class.new(payload) raise response.errors.first.to_error if @raise_on_api_error && response.error? response else res.value # raise Net::XxxError end end end
use_proxy(address: :ENV, port: nil, user: nil, pass: nil)
click to toggle source
# File lib/gmo-pg/dispatcher.rb, line 26 def use_proxy(address: :ENV, port: nil, user: nil, pass: nil) @http.proxy_from_env = (address == :ENV) @http.proxy_address = address @http.proxy_port = port @http.proxy_user = user @http.proxy_pass = pass self end
Private Instance Methods
handle_error() { || ... }
click to toggle source
# File lib/gmo-pg/dispatcher.rb, line 61 def handle_error begin yield if block_given? rescue GMO::PG::Error raise rescue => e raise GMO::PG::Error.from_http_error(e) end end