Module: Rack::Test::Methods

Extended by:
Forwardable
Defined in:
lib/rack/test/methods.rb

Constant Summary collapse

METHODS =
[
  :request,

  # HTTP verbs
  :get,
  :post,
  :put,
  :delete,
  :head,

  # Redirects
  :follow_redirect!,

  # Header-related features
  :header,
  :set_cookie,
  :clear_cookies,
  :authorize,
  :basic_authorize,
  :digest_authorize,

  # Expose the last request and response
  :last_response,
  :last_request
]

Instance Method Summary collapse

Instance Method Details

#_current_session_namesObject



40
41
42
# File 'lib/rack/test/methods.rb', line 40

def _current_session_names
  @_current_session_names ||= [:default]
end

#build_rack_mock_sessionObject



15
16
17
# File 'lib/rack/test/methods.rb', line 15

def build_rack_mock_session
  Rack::MockSession.new(app)
end

#build_rack_test_session(name) ⇒ Object



26
27
28
# File 'lib/rack/test/methods.rb', line 26

def build_rack_test_session(name)
  Rack::Test::Session.new(rack_mock_session(name))
end

#current_sessionObject



30
31
32
# File 'lib/rack/test/methods.rb', line 30

def current_session
  rack_test_session(_current_session_names.last)
end

#rack_mock_session(name = :default) ⇒ Object



8
9
10
11
12
13
# File 'lib/rack/test/methods.rb', line 8

def rack_mock_session(name = :default)
  return build_rack_mock_session unless name

  @_rack_mock_sessions ||= {}
  @_rack_mock_sessions[name] ||= build_rack_mock_session
end

#rack_test_session(name = :default) ⇒ Object



19
20
21
22
23
24
# File 'lib/rack/test/methods.rb', line 19

def rack_test_session(name = :default)
  return build_rack_test_session(name) unless name

  @_rack_test_sessions ||= {}
  @_rack_test_sessions[name] ||= build_rack_test_session(name)
end

#with_session(name) {|rack_test_session(name)| ... } ⇒ Object

Yields:



34
35
36
37
38
# File 'lib/rack/test/methods.rb', line 34

def with_session(name)
  _current_session_names.push(name)
  yield rack_test_session(name)
  _current_session_names.pop
end