Skip to content

thoughtbot/flutie

Repository files navigation

Flutie

Build Status

Flutie provides some utility view helpers for use with Rails applications.

There are helpers for setting a page title and for generating body classes.

Installation & Upgrading

Flutie is a Railtie. We support the versions of Ruby and Rails listed in .travis.yml.

It should be run as a gem and included in your Gemfile:

gem "flutie"

Helpers

Flutie provides helper methods for use within Rails layouts and views.

Page Title

The page_title method can be used like:

<title><%= page_title %></title>

By default, it will produce results like:

<title>Appname : page title</title>
  • "App name" comes from the module name of the rails application created by your app, i.e. Appname::Application will produce "Appname"
  • "page" comes from trying content_for(:page_title) and assumes you are using content_for with :page_title symbol on your pages.
  • The separator defaults to " : "

These can be overridden by passing an options hash including :app_name, :page_title_symbol and :separator hash keys. For example:

content_for(:site_page_title, 'My title of my page')
page_title(:app_name => 'My app name', :page_title_symbol => :site_page_title, :separator => " | ")

would produce:

<title>My app name | My title of my page</title>

You can also reverse the position of the :app_name and the :site_page_title values by using the :reverse option. For example:

content_for(:site_page_title, 'My title of my page')
page_title(:app_name => 'My app name', :page_title_symbol => :site_page_title, reverse: true)

would produce:

<title>My title of my page : My app name</title>

Body Class

The body_class method can be used like this in a layout:

<body class="<%= body_class %>">

This will produce a string including the controller name and controller-action name pair. For example, The WidgetsController#show action would produce:

<body class="widgets widgets-show">

Anything which has been added via content_for(:extra_body_classes) will be added to the end, for example views like:

content_for(:extra_body_classes, 'special-page')
<body class="<%= body_class %>">

would produce:

<body class="widgets widgets-show special-page">

How to contribute

Please see the CONTRIBUTING file for details.

Credits

thoughtbot

Flutie is maintained and funded by thoughtbot, inc.

Thank you to all the contributors!

The names and logos for thoughtbot are trademarks of thoughtbot, inc.

License

Flutie is Copyright © 2010 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.