Harbor Documentation

Harbor::Contrib::Session::DataMapper

This is a database backed session handle for DataMapper. You can use it instead of the builtin Harbor::Session::Cookie by doing:

  Harbor::Session.configure do |session|
    session[:store] = Harbor::Contrib::Session::DataMapper
  end

A basic Session resource is defined for you.

Public Class Methods

commit_session(data, request)

      # File lib/harbor/contrib/session/data_mapper.rb, line 61
61:         def self.commit_session(data, request)
62:           record = data.instance
63:           record.update_attributes(:data => data.to_hash)
64:           record.id
65:         end

load_session(delegate, cookie, request = nil)

      # File lib/harbor/contrib/session/data_mapper.rb, line 46
46:         def self.load_session(delegate, cookie, request = nil)
47:           session = if expire_after = Harbor::Session.options[:expire_after]
48:             ::Session.first(:id => cookie, :updated_at.gte => Time.now - expire_after)
49:           else
50:             ::Session.get(cookie)
51:           end
52: 
53:           unless session
54:             session = ::Session.create
55:             delegate.session_created(session.id, request.remote_ip, request.env["HTTP_USER_AGENT"])
56:           end
57: 
58:           SessionHash.new(session)
59:         end