rack-datamapper-session 0.2 → 0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/rack-datamapper-session.rb +22 -6
- data/rack-datamapper-session.gemspec +2 -1
- metadata +11 -1
@@ -3,8 +3,8 @@ require 'dm-core'
|
|
3
3
|
|
4
4
|
module Rack
|
5
5
|
module Session
|
6
|
-
class
|
7
|
-
include
|
6
|
+
class DataMapperSession
|
7
|
+
include DataMapper::Resource
|
8
8
|
|
9
9
|
property :id, Serial
|
10
10
|
property :sid, String, :length => 128
|
@@ -14,10 +14,26 @@ module Rack
|
|
14
14
|
data[key]
|
15
15
|
end
|
16
16
|
|
17
|
+
def fetch key
|
18
|
+
data[key]
|
19
|
+
end
|
20
|
+
|
17
21
|
def []= key, value
|
18
22
|
data[key] = value
|
19
23
|
end
|
20
24
|
|
25
|
+
def store key, value
|
26
|
+
data[key] = value
|
27
|
+
end
|
28
|
+
|
29
|
+
def delete key
|
30
|
+
data.delete key
|
31
|
+
end
|
32
|
+
|
33
|
+
def clear
|
34
|
+
data.clear
|
35
|
+
end
|
36
|
+
|
21
37
|
def data
|
22
38
|
self.data_object ||= {}
|
23
39
|
end
|
@@ -29,12 +45,12 @@ module Rack
|
|
29
45
|
|
30
46
|
class DataMapper < Abstract::ID
|
31
47
|
def get_session(env, sid)
|
32
|
-
session =
|
48
|
+
session = DataMapperSession.first(:sid => sid) if sid
|
33
49
|
|
34
50
|
unless sid and session
|
35
51
|
env['rack.errors'].puts("Session '#{sid.inspect}' not found, initializing...") if $VERBOSE and not sid.nil?
|
36
52
|
sid = generate_sid
|
37
|
-
session =
|
53
|
+
session = DataMapperSession.new(:sid => sid)
|
38
54
|
raise 'Unable to store session' unless session.save
|
39
55
|
end
|
40
56
|
|
@@ -46,13 +62,13 @@ module Rack
|
|
46
62
|
expiry = options[:expire_after]
|
47
63
|
expiry = expiry.nil? ? 0 : expiry + 1
|
48
64
|
|
49
|
-
session =
|
65
|
+
session = DataMapperSession.first(:sid => sid) if sid
|
50
66
|
|
51
67
|
if options[:renew] or options[:drop]
|
52
68
|
session.destroy
|
53
69
|
return false if options[:drop]
|
54
70
|
sid = generate_sid
|
55
|
-
session =
|
71
|
+
session = DataMapperSession.new(:sid => sid)
|
56
72
|
end
|
57
73
|
|
58
74
|
session.data = new_session.data
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'rack-datamapper-session'
|
5
|
-
s.version = '0.
|
5
|
+
s.version = '0.3'
|
6
6
|
|
7
7
|
s.authors = ['Phil Pirozhkov']
|
8
8
|
s.date = '2009-11-03'
|
@@ -12,4 +12,5 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.summary ='Datamapper session for any Rack based application'
|
13
13
|
|
14
14
|
s.add_dependency 'rack', '>= 1.0'
|
15
|
+
s.add_dependency 'dm-core', '>= 0.9.10'
|
15
16
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-datamapper-session
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "0.
|
4
|
+
version: "0.3"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phil Pirozhkov
|
@@ -22,6 +22,16 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: "1.0"
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: dm-core
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.10
|
34
|
+
version:
|
25
35
|
description: Datamapper session for any Rack based application. Don't forget to automigrate.
|
26
36
|
email:
|
27
37
|
- pirj@mail.ru
|