Simple announcement plugin to include "one off" style announcements in Rails web apps.
Install as normal in your Gemfile:
gem 'paul_revere'
Run the generator to create the migration:
rails generate paul_revere
Add the announcement JS to app/assets/javascripts/application.js
:
//= require announcements
Run the migration:
rake db:migrate && rake db:migrate:redo
Install as normal in your Gemfile:
gem 'paul_revere'
Run the generator to create the migration and copy the JavaScript file into public:
rails generate paul_revere
Add the announcement JS to your layout, such as app/views/layouts/application.html.erb
:
<%= javascript_include_tag 'announcements' %>
Run the migration:
rake db:migrate && rake db:migrate:redo
Paul Revere provides...
- A model called
Announcement
, which has nothing more than timestamps and a "body" column (text column). We view the most recentAnnouncement
as the "current" announcement, and will select that to show on the site. - A helper called
#current_announcement
, which will return that latestAnnouncement
record. - A view partial called
_announcement_for_all
, which is intended to be shown to all site users. - A view partial called
_announcement
, which is intended to be shown only to logged in users. - A view partial called
_email_announcement
, which is intended to be used in site emails which are sent out.
So the flow would be...
-
Install the gem
-
Use those partials in the correct places in your view code and mailer view code where you want announcements to show up:
<%= render 'announcements/announcement_for_all' %>
-
When you want to make an announcement, use the Rails console to create a new
Announcement
record:Announcement.create!(body: 'This Web site is shutting down because you refuse to pay')
Paul Revere is maintained and funded by thoughtbot, inc
Thank you to all the contributors!
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
Paul Revere is Copyright © 2009-2014 thoughtbot. It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.