Class: Kno::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/kno.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, options) ⇒ Session

Returns a new instance of Session.



66
67
68
69
70
# File 'lib/kno.rb', line 66

def initialize(app, options)
  @app = app
  @config = Kno::Config.new(options)
  @api = Kno::API.new(@config)
end

Instance Method Details

#call(env) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# 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