Eldr::Sessions Build Status Code Climate Coverage Status Dependency Status Inline docs Gratipay

Provides session helpers like signed_in? and current_user for Eldr apps and Rack apps.

Installation

Add this line to your application's Gemfile:

gem 'eldr-sessions'

And then execute:

$ bundle

Or install it yourself as:

$ gem install eldr-sessions

Usage

Eldr::Sessions is designed to be included in a Eldr app or Rack app. It has two dependencies;

  1. Session access via env['rack.session']
  2. A configuration object with a session_id and user_model accessor.

If you use it in a Eldr app these two things are already available and you only need to set a session_id.

Use it an Eldr::App like this:

class App < Eldr::App
  include Eldr::Sessions

  use Rack::Session::Cookie, secret: 'sessions_secret'
  set :session_id, 'sessionsRawesome'

  get '/greeting' do
    if current_user
      Rack::Response.new "Hello #{current_user.name}!"
    else
      Rack::Response.new('Login First!', 401)
    end
  end

  post '/login' do
    user = User.authenticate(params['email'], params['password'])
    set_current_user user
    Rack::Response.new('Logged In!')
  end
end

See examples/app.ru for an example app.

Contributing

  1. Fork. it
  2. Create. your feature branch (git checkout -b cat-evolver)
  3. Commit. your changes (git commit -am 'Add Cat Evolution')
  4. Test. your changes (always be testing)
  5. Push. to the branch (git push origin cat-evolver)
  6. Pull. Request. (for extra points include funny gif and or pun in comments)

To remember this you can use the easy to remember and totally not tongue-in-check initialism: FCCTPP.

I don't want any of these steps to scare you off. If you don't know how to do something or are struggle getting it to work feel free to create a pull request or issue anyway. I'll be happy to help you get your contributions up to code and into the repo!

License

Licensed under MIT by K-2052.