Constants
EMPTY_HASH | = | {}.freeze |
Public Class methods
new(options = EMPTY_HASH, &blk)
[show source]
# File lib/httpx/session.rb 10 def initialize(options = EMPTY_HASH, &blk) 11 @options = self.class.default_options.merge(options) 12 @responses = {} 13 @persistent = @options.persistent 14 wrap(&blk) if blk 15 end
Public Instance methods
build_request(verb, uri, options = EMPTY_HASH)
[show source]
# File lib/httpx/session.rb 42 def build_request(verb, uri, options = EMPTY_HASH) 43 rklass = @options.request_class 44 options = @options.merge(options) unless options.is_a?(Options) 45 request = rklass.new(verb, uri, options.merge(persistent: @persistent)) 46 request.on(:response, &method(:on_response).curry(2)[request]) 47 request.on(:promise, &method(:on_promise)) 48 request 49 end
close(*args)
[show source]
# File lib/httpx/session.rb 28 def close(*args) 29 pool.close(*args) 30 end
request(*args, **options)
[show source]
# File lib/httpx/session.rb 32 def request(*args, **options) 33 raise ArgumentError, "must perform at least one request" if args.empty? 34 35 requests = args.first.is_a?(Request) ? args : build_requests(*args, options) 36 responses = send_requests(*requests) 37 return responses.first if responses.size == 1 38 39 responses 40 end
wrap()
[show source]
# File lib/httpx/session.rb 17 def wrap 18 begin 19 prev_persistent = @persistent 20 @persistent = true 21 yield self 22 ensure 23 @persistent = prev_persistent 24 close unless @persistent 25 end 26 end