Skip to content
A lovely bunch of layout and view helper DSLs for things that I usually find myself doing in every Rails app.
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
rails
tasks
test
MIT-LICENSE
README.textile
Rakefile
install.rb
uninstall.rb

README.textile

LovelyLayouts

Here’s a bunch of helpers I find myself needing every time I start up a new Rails project. Mostly, it’s just some nicer DSL wrappers around the content_for patterns we all use to get get content up from the view to the layout in a Rails application (for titles, etc).

In your view

Eg: app/views/posts/show.html.erb

 <% title @post.title %>
 <% description @post.description %>
 <% keywords @post.tags.join(", ") %>
 <% copyright @post.user.full_name %>

In your layout

  <html>
    <head>
      <%= title_tag "optional default title here", :prefix => "optional prefix text", :suffix => "optional suffix text" %>
      <%= description_tag "optional default meta description here" %>
      <%= keywords_tag "optional default meta keywords here" %>
      <%= copyright_tag "optional default meta copyright notice here" %>
    </head>
    <body>
      ...
      <%= yield %>
      ...
    </body>
  </html>

And a neat trick for the <body> tag

A block helper for creating body tags is also in there. The id is generated from params[:controller] (eg “posts”), and the class is generated from params[:controller] name and params[:action] (eg “posts show”).

  <% body do %>
    ...
  <% end %>

Which pushes out something like this:

  <body id="posts" class="posts show">
    ...
  </body>

You can set the id and class from your views:

  <% body_id "blog" %>
  <% body_class "whatever" %>

You can override the id and class (or any attribute of the <body> tag) too:

  <% body :id => "blog", :class => "whatever", :onload => "party()" do %>
    ...
  <% end %>

There’s always a TODO List

  • might write some tests!
  • probably try to distill the way I do tabs too

Blah blah blah blah

Copyright © 2009 Justin French, released under the MIT license.

Something went wrong with that request. Please try again.