Giter Club home page Giter Club logo

responders's Introduction

Responders

A set of responders modules to dry up your Rails 3 app. If you are interested in the version to be used with Rails 2.3 together with Inherited Resources, please check this branch instead:

http://github.com/plataformatec/responders/tree/v0.4
  • FlashResponder - Sets the flash based on the controller action and resource status. For instance, if you do: respond_with(@post) on a POST request and the resource @post does not contain errors, it will automatically set the flash message to “Post was successfully created” as long as you configure your I18n file:

    flash:
      actions:
        create:
          notice: "%{resource_name} was successfully created."
        update:
          notice: "%{resource_name} was successfully updated."
        destroy:
          notice: "%{resource_name} was successfully destroyed."
          alert: "%{resource_name} could not be destroyed."

    In case the resource contains errors, you should use the failure key on I18n. This is useful to dry up flash messages from your controllers. If you need a specific message for a controller, let’s say, for PostsController, you can also do:

    flash:
      posts:
        create:
          notice: "Your post was created and will be published soon"

    This responder is activated in all non get requests. By default it will use the keys :notice and :alert, but they can be changed in your application:

config.responders.flash_keys = [ :success, :failure ]

Or:

  Responders::FlashResponder.flash_keys = [ :success, :failure ]
  • HttpCacheResponder - Automatically adds Last-Modified headers to API requests. This allows clients to easily query the server if a resource changed and if the client tries to retrieve a resource that has not been modified, it returns not_modified status.

  • CollectionResponder - Makes your create and update action redirect to the collection on success.

Configuring your own responder

The first step is instal responders gem and configure it in your application:

gem install responders

Responders only provides a set of modules, to use them, you have to create your own responder. This can be done inside the lib folder for example:

# lib/app_responder.rb
class AppResponder < ActionController::Responder
  include Responders::FlashResponder
  include Responders::HttpCacheResponder
end

And then you need to configure your application to use it:

# app/controllers/application_controller.rb
require "app_responder"

class ApplicationController < ActionController::Base
  self.responder = AppResponder
  respond_to :html
end

Or, for your convenience, just do:

rails generate responders:install

Controller method

This gem also includes the controller method ‘responders’, which allows you to cherry-pick which responders you want included in your controller.

class InvitationsController < ApplicationController
  responders :flash, :http_cache
end

Generator

This gem also includes a responders controller generator, so your scaffold can be customized to use respond_with instead of default respond_to blocks. Installing this gem automatically sets the generator.

Bugs and Feedback

If you discover any bugs or want to drop a line, feel free to create an issue on GitHub.

github.com/plataformatec/responders/issues

MIT License. Copyright 2010 Plataforma Tecnologia. blog.plataformatec.com.br

responders's People

Contributors

carlosantoniodasilva avatar defv avatar endeepak avatar josevalim avatar kuroda avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.