class Juknife::Request::Runner

Juknife::Request::Runner object is a runner for request DSL.

Attributes

block[R]
params[R]

Public Class Methods

new(&block) click to toggle source
# File lib/juknife/request/runner.rb, line 12
def initialize(&block)
  @block = block
  instance_eval(&@block)
end

Public Instance Methods

run(params = {}) click to toggle source
# File lib/juknife/request/runner.rb, line 17
def run(params = {})
  @params = params
  source
end
source() click to toggle source
# File lib/juknife/request/runner.rb, line 22
def source
  @source ||= response.body
end

Private Instance Methods

connection() click to toggle source
# File lib/juknife/request/runner.rb, line 32
def connection
  @connection ||=
    Faraday.new(url_builder.call, params: query_builder.call)
end
rack_builder() click to toggle source
# File lib/juknife/request/runner.rb, line 37
def rack_builder
  @builder ||= Faraday::RackBuilder.new
end
request() click to toggle source
# File lib/juknife/request/runner.rb, line 41
def request
  @request ||= connection.build_request(http_method) do |req|
    req.headers['User-Agent'] = user_agent_builder&.call
    req.body = body_builder&.call
  end
end
response() click to toggle source
# File lib/juknife/request/runner.rb, line 28
def response
  @response ||= rack_builder.build_response(connection, request)
end