Sha256: e284f75309109456be834c995a0d73d018804246099aa106e52fe97d32f52db3

Contents?: true

Size: 1.38 KB

Versions: 11

Compression:

Stored size: 1.38 KB

Contents

%w(./app/models sinatra/base sinatra/flash entrance).each { |lib| require lib }

module Example

  class Routes < Sinatra::Base

    include Entrance::Controller
    register Sinatra::Flash

    set :sessions, :secret => 'veryverysecretkey'
    set :views, File.expand_path(File.dirname(__FILE__)) + '/views'

    before do
      login_required :except => ['/login', '/signup']
    end

    get '/' do
      erb :welcome
    end

    get '/signup' do
      erb :signup
    end

    post '/signup' do
      if @user = User.new(params[:user]) and @user.save
        flash[:success] = 'Signed up! Please log in now.'
        redirect to('/login')
      else
        flash[:error] = "Something's wrong. Try again."
        redirect to('/signup')
      end
    end

    get '/login' do
      if logged_in?
        redirect(to('/'))
      else
        erb :login
      end
    end

    post '/login' do
      if user = User.authenticate(params[:email], params[:password]) and user.active?
        remember = ['on', '1'].include?(params[:remember_me])
        login!(user, remember)

        flash[:success] = 'Welcome back!'
        redirect_to_stored_or to('/')
      else
        flash[:error] = "Couldn't log you in. Please try again."
        redirect to('/login')
      end
    end

    get '/logout' do
      logout!
      flash[:notice] = 'Logged out! See you soon.'
      redirect to('/login')
    end

  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
entrance-0.6.4 examples/sinatra-app/app/routes.rb
entrance-0.6.3 examples/sinatra-app/app/routes.rb
entrance-0.6.2 examples/sinatra-app/app/routes.rb
entrance-0.6.1 examples/sinatra-app/app/routes.rb
entrance-0.6.0 examples/sinatra-app/app/routes.rb
entrance-0.3.4 examples/sinatra-app/app/routes.rb
entrance-0.3.3 examples/sinatra-app/app/routes.rb
entrance-0.3.2 examples/sinatra-app/app/routes.rb
entrance-0.3.0 examples/sinatra-app/app/routes.rb
entrance-0.2.5 examples/sinatra-app/app/routes.rb
entrance-0.2.4 examples/sinatra-app/app/routes.rb