class Neb::Client::Request
Attributes
action[R]
block[R]
payload[R]
url[R]
Public Class Methods
new(action, url, payload = {}, block = nil)
click to toggle source
# File lib/neb/client/request.rb, line 9 def initialize(action, url, payload = {}, block = nil) @action = action @url = url @payload = payload @block = custom_block(block) end
Public Instance Methods
execute()
click to toggle source
# File lib/neb/client/request.rb, line 32 def execute Neb.logger.debug(self.to_s) if block.present? ::RestClient::Request.execute(request_args) else ::RestClient::Request.execute(request_args, &default_block) end end
request_args()
click to toggle source
# File lib/neb/client/request.rb, line 20 def request_args args = { method: action, url: url, payload: payload.deep_camelize_keys(:lower).to_json, headers: { content_type: :json, accept: :json }, timeout: CONFIG[:timeout] } args.merge!(block_response: block) if block.present? args end
to_s()
click to toggle source
# File lib/neb/client/request.rb, line 16 def to_s "#{self.class}{action=#{action}, url=#{url}, payload=#{payload}}" end
Private Instance Methods
custom_block(block)
click to toggle source
# File lib/neb/client/request.rb, line 47 def custom_block(block) return nil if block.blank? Proc.new do |resp| resp.read_body do |chunk| block.call(chunk.force_encoding('utf-8')) end end end
default_block()
click to toggle source
# File lib/neb/client/request.rb, line 43 def default_block Proc.new { |resp, _, _| Response.new(resp) } end