From b0b1e386071e5e7eedcda1a1174c6bbcc82efc1e Mon Sep 17 00:00:00 2001 From: Hiten Parmar Date: Sun, 12 Feb 2012 14:56:17 -0800 Subject: [PATCH] Reuse session between requests on a single Faraday::Connection. --- lib/faraday/adapter/patron.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/faraday/adapter/patron.rb b/lib/faraday/adapter/patron.rb index e2f6724f..c500470c 100644 --- a/lib/faraday/adapter/patron.rb +++ b/lib/faraday/adapter/patron.rb @@ -14,8 +14,7 @@ module Faraday # TODO: support streaming requests env[:body] = env[:body].read if env[:body].respond_to? :read - session = ::Patron::Session.new - @block.call(session) + session = @session ||= create_session if req = env[:request] session.timeout = session.connect_timeout = req[:timeout] if req[:timeout] @@ -44,6 +43,12 @@ module Faraday actions << :options unless actions.include? :options end end + + def create_session + session = ::Patron::Session.new + @block.call(session) + session + end end end end