class Juknife::Middleware::RequestDSL

A Faraday middleware to interpret Juknife request DSL

Attributes

params[R]

Public Class Methods

new(app, params = {}, &block) click to toggle source
Calls superclass method
# File lib/juknife/middleware/request_dsl.rb, line 14
def initialize(app, params = {}, &block)
  super(app)
  @params = params
  instance_eval(&block)
end

Public Instance Methods

call(env) click to toggle source
# File lib/juknife/middleware/request_dsl.rb, line 20
def call(env) # rubocop: disable Metrics/AbcSize
  uri = URI.parse(url_builder.call)
  uri.query = query_builder&.call&.to_query

  env[:url] = uri
  env[:method] = http_method
  env[:body] = body_builder&.call
  env[:request_headers] ||= {}

  if user_agent_builder
    env[:request_headers]['User-Agent'] = user_agent_builder&.call
  end

  @app.call(env)
end