10000 try to ensure we always have some kind of object · rack/rack@83d4bd1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 83d4bd1

Browse files
committed
try to ensure we always have some kind of object
1 parent 7fb95db commit 83d4bd1

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

lib/rack/session/abstract/id.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ module Rack
1111

1212
module Session
1313

14+
class NullSessionId
15+
def empty?; true; end
16+
end
17+
1418
module Abstract
1519
# SessionHash is responsible to lazily load the session from store.
1620

@@ -39,8 +43,11 @@ def initialize(store, req)
3943
end
4044

4145
def id
42-
return @id if @loaded or instance_variable_defined?(:@id)
43-
@id = @store.send(:extract_session_id, @req)
46+
if @loaded or instance_variable_defined?(:@id)
47+
else
48+
@id = @store.send(:extract_session_id, @req)
49+
end
50+
@id || NullSessionId.new
4451
end
4552

4653
def options

lib/rack/session/cookie.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,11 @@ def initialize(app, options={})
125125
def find_session(req, sid)
126126
data = unpacked_cookie_data(req)
127127
data = persistent_session_id!(data)
128-
[data["session_id"], data]
128+
[data["session_id"] || raise, data]
129129
end
130130

131131
def extract_session_id(request)
132-
unpacked_cookie_data(request)["session_id"]
132+
unpacked_cookie_data(request)["session_id"] || NullSessionId.new
133133
end
134134

135135
def unpacked_cookie_data(request)

0 commit comments

Comments
 (0)
0