Class: Spider::MemorySession

Inherits:
Session show all
Defined in:
lib/spiderfw/controller/session/memory_session.rb

Instance Attribute Summary

Attributes inherited from Session

#sid

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Session

#[], #[]=, check_purge, #clear_empty_hashes!, #delete, #flash, #generate_sid, get, #initialize, #persist, #transient

Constructor Details

This class inherits a constructor from Spider::Session

Class Method Details

.[](sid) ⇒ Object



27
28
29
30
31
32
# File 'lib/spiderfw/controller/session/memory_session.rb', line 27

def [](sid)
    check_purge
    @mutex.synchronize{
        @sessions[sid] ? @sessions[sid][:data] : nil
    }
end

.[]=(sid, data) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/spiderfw/controller/session/memory_session.rb', line 18

def []=(sid, data)
    @mutex.synchronize {
        @sessions[sid] = {
            :data => data,
            :mtime => Time.now
        }
    }
end

.delete(sid) ⇒ Object



44
45
46
47
48
# File 'lib/spiderfw/controller/session/memory_session.rb', line 44

def delete(sid)
    @mutex.synchronize{
        @sessions.delete(sid)
    }
end

.purge(life) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/spiderfw/controller/session/memory_session.rb', line 34

def purge(life)
    @mutex.synchronize{
        @sessions.each do |sid, session|
            if (session[:mtime] + life < Time.now)
                @sessions.delete(sid)
            end
        end
    }
end

.setupObject



10
11
12
13
14
15
16
# File 'lib/spiderfw/controller/session/memory_session.rb', line 10

def setup
    unless @sessions
        @mutex ||= Mutex.new
        @sessions ||= Hash.new
    end
    super
end

Instance Method Details

#restoreObject



53
54
55
# File 'lib/spiderfw/controller/session/memory_session.rb', line 53

def restore
    @data = self.class[@sid]
end