Socket
Book a DemoInstallSign in
Socket

message_block

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

message_block

2.0.3
bundlerRubygems
Version published
Maintainers
1
Created
Source

{Build Status}[http://travis-ci.org/rubiety/message_block] {Dependency Status}[https://gemnasium.com/rubiety/message_block] {}[https://codeclimate.com/github/rubiety/message_block]

= Message Block

Implements the common view pattern by which a list of messages are shown at the top, often a combination of flash messages and ActiveRecord validation issues on one or more models.
This allows for a nice, stylized block of messages at the top of the page with icons indicating what type of message it is (error, confirmation, warning, etc.)

This view helper acts as a replacement for error_messages_for by taking error messages from your models and combing them with flash messages (multiple types such as error, confirm, etc.) and outputting them to your view. This gem comes with an example stylesheet and images.

== Installation: Rails 3.1+ Asset Pipeline (message_block 2.0)

Include the gem using bundler in your Gemfile:

gem "message_block", "~> 2.0"

Include the stylesheet in your application.css:

/* *= require message_block */

== Installation: Rails 3.0 Without Asset Pipeline (message_block 1.1)

Include the gem using bundler in your Gemfile:

gem "message_block", "~> 1.1"

Then run the rake task to install the static files:

rake message_block:install

Then be sure to include the CSS definitions:

<%= stylesheet_include_tag "message_block" %>

== Usage

Once you install this, you should now have a set of images at public/images/message_block and a basic stylesheet installed at public/stylesheets/message_block.css. Then you can use the helper <%= message_block %>:

The first argument specifies a hash options:

  • :on - specifies one or many model names for which to check error messages. You can specify the special value of :all which will grab all view assignments that contain an ActiveModel "errors" method.
  • :model_error_type - specifies the message type to use for validation errors; defaults to 'error'
  • :flash_types - specifies the keys to check in the flash hash. Messages will be grouped in ul lists according to this type. Defaults to: [:notice, :back, :confirm, :error, :alert, :info, :warn]
  • :html - Specifies HTML options for the containing div
  • :id - Specifies ID of the containing div; defaults to 'message_block'
  • :class - Specifies class name of the containing div; defaults to nothing.
  • :container - specifies which block-level element to contain the errors (defaults to :div).

=== Example

Imagine you have a form for entering a user and a comment:

<%= message_block :on => [:user, :comment] %>

Imagine also you set these flash variables in the controller: class CommentsController def create flash.now[:error] = "Error A" flash.now[:confirm] = "Confirmation A" # Note you can use different types flash.now[:warn] = ["Warn A", "Warn B"] # Can set to an array for multiple messages end end

And let's say that you want to show these messages but also show the validation issues given that both user and comment fail ActiveRecord validation:

  • Error A
  • User first name is required.
  • Comment contents is required.
  • Confirmation A
  • Warn A
  • Warn B

Note that instead of manually specifying models you wish to report errors on, you can instead use the special :all value which will automatically use all view assign values that contain an ActiveModel::Errors "errors" method.

== Running Tests

This gem uses appraisal to test with different versions of the dependencies. See Appraisal first for which versions are tested, then run to test all appraisals:

$ rake appraisal test

FAQs

Package last updated on 14 Jun 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.