Session also supports arrays
This commit is contained in:
parent
8c600cb26e
commit
a8e53fb94e
2 changed files with 34 additions and 1 deletions
|
@ -53,4 +53,37 @@ describe "Session" do
|
||||||
Kemal::Sessions.prune!
|
Kemal::Sessions.prune!
|
||||||
s.size.should eq(0)
|
s.size.should eq(0)
|
||||||
end
|
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
|
end
|
||||||
|
|
|
@ -16,7 +16,7 @@ module Kemal
|
||||||
# Sessions are pruned hourly after 48 hours of inactivity.
|
# Sessions are pruned hourly after 48 hours of inactivity.
|
||||||
class Sessions
|
class Sessions
|
||||||
# Session Types are String, Integer, Float and Boolean
|
# 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.
|
# In-memory, ephemeral datastore only.
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in a new issue