0.0
No commit activity in last 3 years
No release in over 3 years
Organize your code by grouping your controller callbacks.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

Before Actions

Build Status Gem Version Dependency Status Code Climate License

Organize your controllers by grouping your before and after filters.

Why use this gem?

As developers, our teams are composed of a range of developers .... it's not always easy to put everybody in the same page

phases: authentication - your auth gem will do this one

pre-fetching-authorization fetching post-fetching-authorization

actual logic - action block

Ruby

Our tests cases run with 1.9.3, 2.0.0 and 2.1.0

We encourage you to work with any 1.9+ Ruby version

Rails

You can use this gem with Rails 3.1, 3.2 and 4+

Installation

Add this line to your application's Gemfile:

gem 'before_actions'

And then execute:

bundle

If you want your scaffold generated code to always look like this, just run:

rails g before_actions:template

Upgrading from v1.*

If you were already using this gem in your project and want to upgrade it, simply run:

bundle update before_actions
rails g before_actions:template

Then simply adjust your controllers to the new syntax

Demo

Restful

resource.png

Nested

nested.png

Sample Code

class ContactsController < ApplicationController

  # load and authorize resources
  before_actions do
    # listing actions
    only(:index) { @contacts = Contact.all }

    # building actions
    only(:new)    { @contact = Contact.new }
    only(:create) { @contact = Contact.new(contact_params) }

    # member actions, will raise a 404 if the model is not found
    only(:show, :edit, :update, :destroy) { @contact = Contact.find(params[:id]) }
  end

  after_actions do
    all { your_code_here }
    except(:index) { your_code_here }
  end


  around_actions do
    only(:create) do |controller, action|
      your_code
      action.call
      in_here
    end
  end

end

References

Contributing

  1. Fork it ( https://github.com/github.com/before-actions-gem/before_actions/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Versioning

Before Actions uses Semantic Versioning 2.0.0