diff --git a/lib/webrat/core/methods.rb b/lib/webrat/core/methods.rb index b6fc0aa..d6b2aee 100644 --- a/lib/webrat/core/methods.rb +++ b/lib/webrat/core/methods.rb @@ -16,11 +16,11 @@ module Webrat end def webrat_session - @_webrat_session ||= ::Webrat::Session.new(webrat_adapter) - end - - def webrat_adapter - @_webrat_adapter ||= Webrat.adapter_class.new(self) + @_webrat_session ||= begin + session = Webrat.session_class.new + session.adapter = Webrat.adapter_class.new(self) if session.respond_to?(:adapter=) + session + end end # all of these methods delegate to the @session, which should diff --git a/lib/webrat/core/session.rb b/lib/webrat/core/session.rb index 6db48ec..ec3e1e7 100644 --- a/lib/webrat/core/session.rb +++ b/lib/webrat/core/session.rb @@ -59,6 +59,9 @@ For example: extend Forwardable include Logging include SaveAndOpenPage + + attr_accessor :adapter + attr_reader :current_url attr_reader :elements @@ -66,13 +69,12 @@ For example: :response_body=, :response_code=, :get, :post, :put, :delete - def initialize(adapter=nil) + def initialize(adapter = nil) + @adapter = adapter @http_method = :get @data = {} @default_headers = {} @custom_headers = {} - @adapter = adapter - reset end