class PaperCup::Request
Constants
- COMMAND_TEMPLATE
Attributes
body[RW]
headers[RW]
method[RW]
params[RW]
url[RW]
Public Class Methods
new(method:, url:, headers: {}, params: {}, body: "")
click to toggle source
# File lib/paper_cup/request.rb, line 11 def initialize(method:, url:, headers: {}, params: {}, body: "") @url, @method, @headers, @params, @body = url, method, headers, params, body end
Public Instance Methods
build_body()
click to toggle source
# File lib/paper_cup/request.rb, line 41 def build_body body.empty? ? "" : "-d '#{body}'" end
build_headers()
click to toggle source
# File lib/paper_cup/request.rb, line 29 def build_headers @headers.map { |k, v| "-H '#{k}: #{v}'" }.join(" ") end
build_params()
click to toggle source
# File lib/paper_cup/request.rb, line 33 def build_params json_request? ? "-d '#{params.to_json}'" : "-d '#{params}'" end
command()
click to toggle source
# File lib/paper_cup/request.rb, line 19 def command COMMAND_TEMPLATE % { method: method.upcase, headers: build_headers, params: build_params, body: build_body, url: url } end
exec()
click to toggle source
# File lib/paper_cup/request.rb, line 15 def exec Response.new(Open3.capture3(command).first) end
json_request?()
click to toggle source
# File lib/paper_cup/request.rb, line 37 def json_request? @headers["Content-Type"] && @headers["Content-Type"].include?("json") end