Skip to content

Instantly share code, notes, and snippets.

@laser
Last active December 18, 2015 22:09
Show Gist options
  • Save laser/5852982 to your computer and use it in GitHub Desktop.
Save laser/5852982 to your computer and use it in GitHub Desktop.
Sinatra Best Practices: Part One (baseline)
########
# app.rb
#
require 'sinatra'
set :root, File.dirname(__FILE__)
enable :sessions
def require_logged_in
redirect('/sessions/new') unless is_authenticated?
end
def is_authenticated?
return !!session[:user_id]
end
get '/' do
erb :login
end
get '/sessions/new' do
erb :login
end
post '/sessions' do
session[:user_id] = params["user_id"]
redirect('/secrets')
end
get '/secrets' do
require_logged_in
erb :secrets
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment