Skip to content

Commit 4a723bb

Browse files
committed
Allow digest classes as the digest for store path
1 parent eec721b commit 4a723bb

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

lib/cgi/session.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,11 @@ def new_store_file(option={}) # :nodoc:
218218
prefix = option['prefix']
219219
suffix = option['suffix']
220220
algorithm = option['digest'] || 'SHA256'
221-
require 'digest'
222-
digest = Digest(algorithm).hexdigest(session_id)[0,16]
221+
if String === algorithm
222+
require 'digest'
223+
algorithm = Digest(algorithm)
224+
end
225+
digest = algorithm.hexdigest(session_id)[0,16]
223226
path = dir+"/"
224227
path << prefix if prefix
225228
path << digest

test/cgi/test_cgi_session.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,11 @@ def test_cgi_session_filestore_digest
175175
assert_equal path_default, session_file_store_path("tmpdir"=>@session_dir, "session_id"=>session_id)
176176
path_sha512 = session_file_store_path("tmpdir"=>@session_dir, "session_id"=>session_id, "digest"=>"SHA512")
177177
assert_not_equal path_sha512, path_default
178+
179+
path = session_file_store_path("tmpdir"=>@session_dir, "session_id"=>session_id, "digest"=>Digest::SHA256)
180+
assert_equal path_default, path
181+
path = assert_session_filestore_path(session_file_store_path("tmpdir"=>@session_dir, "session_id"=>session_id, "digest"=>Digest::SHA512))
182+
assert_equal path_sha512, path
178183
end
179184

180185
private

0 commit comments

Comments
 (0)