File tree Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,10 @@ module Rack
11
11
12
12
module Session
13
13
14
+ class NullSessionId
15
+ def empty? ; true ; end
16
+ end
17
+
14
18
module Abstract
15
19
# SessionHash is responsible to lazily load the session from store.
16
20
@@ -39,8 +43,11 @@ def initialize(store, req)
39
43
end
40
44
41
45
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
44
51
end
45
52
46
53
def options
Original file line number Diff line number Diff line change @@ -125,11 +125,11 @@ def initialize(app, options={})
125
125
def find_session ( req , sid )
126
126
data = unpacked_cookie_data ( req )
127
127
data = persistent_session_id! ( data )
128
- [ data [ "session_id" ] , data ]
128
+ [ data [ "session_id" ] || raise , data ]
129
129
end
130
130
131
131
def extract_session_id ( request )
132
- unpacked_cookie_data ( request ) [ "session_id" ]
132
+ unpacked_cookie_data ( request ) [ "session_id" ] || NullSessionId . new
133
133
end
134
134
135
135
def unpacked_cookie_data ( request )
You can’t perform that action at this time.
0 commit comments