Skip to content

Commit 15d17ed

Browse files
HarlemSquirrelkares
authored andcommitted
Add Rack::Handler::Servlet::DefaultEnv#get_header (#212)
* Add Rack::Handler::Servlet::DefaultEnv#get_header Fixes #211 * Update Rack::Handler::Servlet::DefaultEnv Add missing methods to handle ActionController::Base#reset_session
1 parent 49a3673 commit 15d17ed

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/main/ruby/rack/handler/servlet/default_env.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ class DefaultEnv < Hash # The environment must be an instance of Hash !
3030
SCRIPT_NAME SERVER_NAME SERVER_PORT SERVER_SOFTWARE).
3131
map!(&:freeze)
3232

33+
attr_reader :env
34+
3335
# Factory method for creating the Hash.
3436
# Besides initializing a new env instance this method by default
3537
# eagerly populates (and returns) the env Hash.
@@ -60,6 +62,16 @@ def initialize(servlet_env = nil)
6062
end
6163
end
6264

65+
# If a block is given, it yields to the block if the value hasn't been set
66+
# on the request.
67+
def fetch_header(name, &block)
68+
@env.fetch(name, &block)
69+
end
70+
71+
def get_header(key)
72+
@env[key]
73+
end
74+
6375
def populate
6476
unless @populated
6577
populate! if @servlet_env
@@ -75,6 +87,16 @@ def populate!
7587
self
7688
end
7789

90+
def session_options
91+
fetch_header(RACK_SESSION_OPTIONS) do |k|
92+
set_header RACK_SESSION_OPTIONS, {}
93+
end
94+
end
95+
96+
def set_header(name, v)
97+
@env[name] = v
98+
end
99+
78100
def to_hash(bare = nil)
79101
if bare
80102
{}.update(populate)

0 commit comments

Comments
 (0)