Session also supports arrays

This commit is contained in:
Sdogruyol 2016-09-29 22:48:19 +03:00 committed by Serdar Dogruyol
parent 8c600cb26e
commit a8e53fb94e
2 changed files with 34 additions and 1 deletions

View File

@ -53,4 +53,37 @@ describe "Session" do
Kemal::Sessions.prune!
s.size.should eq(0)
end
it "supports many types" do
who = nil
age = nil
awesome = nil
velocity = nil
arr = nil
get "/" do |env|
sess = env.session
who = sess["who"]?
age = sess["age"]?
velocity = sess["velocity"]?
awesome = sess["awesome"]?
arr = sess["arr"]?
sess["who"] = "Kemal"
sess["age"] = 2016
sess["velocity"] = 9999.9
sess["awesome"] = true
sess["arr"] = [1, "Serdar", true, 90000.0]
"Hello"
end
request = HTTP::Request.new("GET", "/")
response = call_request_on_app(request)
request = HTTP::Request.new("GET", "/", response.headers)
response = call_request_on_app(request)
who.should eq "Kemal"
age.should eq 2016
velocity.should eq 9999.9
awesome.should eq true
arr.should eq [1, "Serdar", true, 90000.0]
end
end

View File

@ -16,7 +16,7 @@ module Kemal
# Sessions are pruned hourly after 48 hours of inactivity.
class Sessions
# Session Types are String, Integer, Float and Boolean
alias SessionTypes = String | Int64 | Float64 | Bool
alias SessionTypes = String | Int32 | Float64 | Bool | Array(String | Int32 | Float64 | Bool)
# In-memory, ephemeral datastore only.
#