Sha256: dbc5978e3e0c3094486863c8c1cb76d9601281a2dbd8cae9e07a4e5f2134cff5
Contents?: true
Size: 1015 Bytes
Versions: 8
Compression:
Stored size: 1015 Bytes
Contents
require "janus" require "sinatra/base" module Sinatra module Janus module Helpers def janus @janus ||= ::Janus::Manager.new(request, request.cookies) end def authenticate!(scope) janus.authenticate!(scope) end def signed_in?(scope) janus.authenticate?(scope) end end def self.registered(app) app.helpers Helpers end end def janus(*resources) resources.each do |plural| singular = plural.to_s.singularize klass = singular.camelize.constantize class_eval <<-EOV def authenticate_#{singular}! authenticate!(:#{singular}) end def #{singular}_signed_in? signed_in?(:#{singular}) end def current_#{singular} @current_#{singular} ||= janus.authenticate(:#{singular}) end def #{singular}_session janus.session(:#{singular}) if #{singular}_signed_in? end EOV end end register Janus end
Version data entries
8 entries across 8 versions & 1 rubygems