class Kno::Session

Public Class Methods

new(app, options) click to toggle source
# File lib/kno.rb, line 66
def initialize(app, options)
  @app = app
  @config = Kno::Config.new(options)
  @api = Kno::API.new(@config)
end

Public Instance Methods

call(env) click to toggle source
# File lib/kno.rb, line 72
def call(env)
  req = Rack::Request.new(env)
  persona_id = req.session[:persona_id]
  env['kno'] = Helpers.new(persona_id, @config)
  if env['PATH_INFO'] == "/session/new"
    kno_token = req.params["knoToken"]
    persona_id = @api.authenticate(kno_token)
    req.session[:persona_id] = persona_id
    [303, {'location' => '/'}, nil]
  elsif env['PATH_INFO'] == "/session/terminate"
    req.session.clear
    [303, {'location' => "/"}, nil]
  else
    @app.call(env)
  end
end