class Polyseerio::Request
HTTP request wrapper that can use attached middleware.
Constants
- INITIALIZE_DEFAULTS
Attributes
post_request[RW]
pre_request[RW]
reject_request[RW]
resource[RW]
Public Class Methods
new(resource, options = {})
click to toggle source
# File lib/request.rb, line 19 def initialize(resource, options = {}) # need to ensure taht pre, post, reject are all arrays otherwise raise options = Helper.defaults(options, INITIALIZE_DEFAULTS) @resource = resource @pre_request = options[Middleware::PRE] @post_request = options[Middleware::POST] @reject_request = options[Middleware::REJECT] end
Public Instance Methods
delete(*args)
click to toggle source
Perform a DELETE request.
# File lib/request.rb, line 46 def delete(*args) execute(:delete, *args) end
get(*args)
click to toggle source
Perform a GET request.
# File lib/request.rb, line 31 def get(*args) execute(:get, *args) end
post(*args)
click to toggle source
Perform a POST request.
# File lib/request.rb, line 36 def post(*args) execute(:post, *args) end
put(*args)
click to toggle source
Perform a PUT request.
# File lib/request.rb, line 41 def put(*args) execute(:put, *args) end
Private Instance Methods
execute(method, *args)
click to toggle source
Execute a request using pre, post, and reject middleware.
method - The HTTP method. … - Arguments to forward to execute.
Returns a promise.
# File lib/request.rb, line 58 def execute(method, *args) new_args = args @pre_request.each do |middleware| new_args = middleware.call(*new_args) end path = new_args.empty? ? '' : new_args.shift req = proc do || @resource[path].send(method, *new_args) end post = proc do |result| @post_request.each do |middleware| result = middleware.call(result) end result end Concurrent::Promise.new(&req).on_success(&post) end