Class: Juknife::Middleware::RequestDSL
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- Juknife::Middleware::RequestDSL
- Includes:
- Request::DSL
- Defined in:
- lib/juknife/middleware/request_dsl.rb
Overview
A Faraday middleware to interpret Juknife request DSL
Constant Summary
Constants included from Request::DSL
Instance Attribute Summary collapse
-
#params ⇒ Object
readonly
Returns the value of attribute params.
Attributes included from Request::DSL
#body_builder, #http_method, #query_builder, #url_builder, #user_agent_builder
Instance Method Summary collapse
-
#call(env) ⇒ Object
rubocop: disable Metrics/AbcSize.
-
#initialize(app, params = {}, &block) ⇒ RequestDSL
constructor
A new instance of RequestDSL.
Methods included from Request::DSL
Constructor Details
#initialize(app, params = {}, &block) ⇒ RequestDSL
Returns a new instance of RequestDSL.
14 15 16 17 18 |
# File 'lib/juknife/middleware/request_dsl.rb', line 14 def initialize(app, params = {}, &block) super(app) @params = params instance_eval(&block) end |
Instance Attribute Details
#params ⇒ Object (readonly)
Returns the value of attribute params.
12 13 14 |
# File 'lib/juknife/middleware/request_dsl.rb', line 12 def params @params end |
Instance Method Details
#call(env) ⇒ Object
rubocop: disable Metrics/AbcSize
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# 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 |