Harbor Documentation

Harbor::Contrib::Session::DataObjects::SessionHash

Public Class Methods

new(raw)

      # File lib/harbor/contrib/session/data_objects.rb, line 20
20:           def initialize(raw)
21:             @raw = raw
22:             @data = nil
23:             @dirty = false
24:           end

Public Instance Methods

[](key)

      # File lib/harbor/contrib/session/data_objects.rb, line 26
26:           def [](key)
27:             if [:session_id, :user_id, :remote_ip, :user_agent_raw].include?(key)
28:               @raw[key]
29:             else
30:               load_data![key]
31:             end
32:           end

[]=(key, value)

      # File lib/harbor/contrib/session/data_objects.rb, line 34
34:           def []=(key, value)
35:             raise ArgumentError.new("You cannot manually set the session_id for a session.") if key == :session_id
36: 
37:             @dirty = true
38:             if [:session_id, :user_id, :remote_ip, :user_agent_raw].include?(key)
39:               @raw[key] = value
40:             else
41:               load_data![key] = value
42:             end
43:           end

clear()

      # File lib/harbor/contrib/session/data_objects.rb, line 59
59:           def clear
60:             @data = {}
61:             @raw[:user_id] = nil
62:             @dirty = true
63:           end

data_loaded?()

      # File lib/harbor/contrib/session/data_objects.rb, line 49
49:           def data_loaded?
50:             ! @data.nil?
51:           end

dirty?()

      # File lib/harbor/contrib/session/data_objects.rb, line 45
45:           def dirty?
46:             @dirty
47:           end

load_data!()

      # File lib/harbor/contrib/session/data_objects.rb, line 53
53:           def load_data!
54:             return @data if data_loaded?
55:             
56:             @data = DataObjects.load(@raw[:data])
57:           end

to_hash()

      # File lib/harbor/contrib/session/data_objects.rb, line 65
65:           def to_hash
66:             @data
67:           end