• Stars
    star
    160
  • Rank 234,703 (Top 5 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 16 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A replacement for error_messages_for that is much more powerful/flexible.

<img src=“https://secure.travis-ci.org/rubiety/message_block.png?branch=master” alt=“Build Status” /> <img src=“https://gemnasium.com/rubiety/message_block.png” alt=“Dependency Status” /> <img src=“https://codeclimate.com/github/rubiety/message_block.png” />

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:

<div id="message_block" class="message_block">
  <ul class="error">
    <li>Error A</li>
    <li>User first name is required.</li>
    <li>Comment contents is required.</li>
  </ul>
  <ul class="confirm">
    <li>Confirmation A</li>
  </ul>
  <ul class="warn">
    <li>Warn A</li>
    <li>Warn B</li>
  </ul>
</div>

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

More Repositories

1

nilify_blanks

Provides a framework for saving incoming blank values as nil in the database in instances where you'd rather use DB NULL than simply a blank string.
Ruby
322
star
2

jazz_model

Jazz Model - A data model for Jazz theory and other cool stuff.
Ruby
180
star
3

validates_lengths_from_database

Introspects your database string field maximum lengths and automatically defines length validations.
Ruby
83
star
4

has_draft

Allows for your ActiveRecord models to have "drafts" which are stored in a separate duplicate table that can be edited without affecting the "live" copy.
Ruby
68
star
5

vexflow-json

A wrapper for the VexFlow staff engraving library to render staff notation from simple JSON instead complex API calls.
JavaScript
46
star
6

jazzity

The Jazz Knowledge Engine
Ruby
25
star
7

rspecify

Uses ruby_scribe to convert your Test::Unit (+ shoulda) tests into RSpecs
Ruby
14
star
8

cukigem

Trying to test your gems in the context of a test Rails application is hard. This gem makes it easy.
Ruby
13
star
9

ruby_transform

A series of useful Ruby AST transformations
Ruby
10
star
10

micro_sessions

The repository has been moved to
Ruby
10
star
11

chords-json

A JSON format for representing musical chord changes with related tools.
9
star
12

jquery-vexflow-json

A jquery library to encapsulate staff engraving via VexFlow. Relies on vexflow-json.
JavaScript
9
star
13

irealb_parser

Parses iReal B chord changes notation into the standard chords-json format.
Ruby
8
star
14

goplay

GoPlay! Game Application in Merb, DataMapper, and jQuery
Ruby
8
star
15

ruby_scribe

Generates nicely-formatted ruby source code given a ruby abstract syntax tree (from seattlerb's ruby_parser).
Ruby
8
star
16

has_meta_data

Allows for your ActiveRecord models to have meta data associated with them that don't require a separate model - primarily useful with STI classes to somewhat emulate Class Table Inheritance.
Ruby
6
star
17

rubify

A framework for AST translations from other languages to a Ruby AST. A foundation for true language conversion to Ruby.
Ruby
4
star
18

factory_girl_upgrader

Uses ruby_parser and ruby_scribe to dynamically convert factory_girl factories in the V1 DSL into the V2 DSL.
Ruby
4
star
19

coworking_nomads

Web application for facilitating ad-hoc coworking among independent workers at free venues around town.
Ruby
3
star
20

ben_hughes

Ben Hughes Personal Website
CSS
2
star
21

ups_shipping

A ruby library for interacting with the UPS Shipping API.
Ruby
2
star
22

magic_hangman

Hangman Project for Magic Night
Ruby
1
star
23

blue_passers

Website for BluePassers.com - Online community and leaderboard for JetBlue BluePass Holders
Ruby
1
star
24

ruby_pranks

Ruby is such a dynamic language, it can be dangerous if you're not careful...
1
star
25

where_in_the_world_is_ben

Simple app to show where I am, through Foursquare checkins
Ruby
1
star
26

jet_blue

Some screen scraping tools to automate the JetBlue AYCJ/BluePass booking engine.
Ruby
1
star
27

ruby_finance

Financial/Business calculations as a ruby library.
1
star
28

penguinoh

Photo album of Penguinoh Waddles
HTML
1
star
29

flight_leverage

Simple Middleman blog for Flight Leverage (Travel Hacking).
HTML
1
star
30

jetting_rubyist

Website for JettingRubyist.com - Nomadic Co-working & Pairing
JavaScript
1
star