benedictleejh / rails_layout

Generates Rails application layout files for various front-end frameworks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RailsLayout Gem RailsLayout Gem

RailsLayout is a utility gem to use during development.

Use it to set up your choice of front-end framework:

  • Twitter Bootstrap 2.3
  • Twitter Bootstrap 3.0
  • Zurb Foundation 4.0
  • Zurb Foundation 5.0

Add it to your Rails application Gemfile, then use the generator.

It will rename application.css to application.css.scss.

It will add:

  • framework_and_overrides.css.scss

And modify the JavaScript asset file:

  • application.js

It will set up a default application layout.

It creates partials for:

  • Rails flash messages
  • navigation links

You can also generate a navigation links file suitable for use with Devise (the authentication gem).

Supported Frameworks

You can generate layout files suitable for use with the following front-end frameworks:

  • simple – simple layout
  • bootstrap2 – Twitter Bootstrap 2.3
  • bootstrap3 – Twitter Bootstrap 3.0
  • foundation4 – Zurb Foundation 4.0
  • foundation5 – Zurb Foundation 5.0
  • none – removes all changes

Generated Files

The RailsLayout gem generates application layout files:

  • app/views/layouts/application.html.erb
  • app/views/layouts/_messages.html.erb
  • app/views/layouts/_navigation.html.erb
  • app/views/layouts/_navigation_links.html.erb

Additionally, when the simple option is selected:

  • app/assets/stylesheets/simple.css

Note About the Navigation Partials

Two navigation partials are created:

  • app/views/layouts/_navigation_links.html.erb
  • app/views/layouts/_navigation.html.erb

The first file contains no framework-specific styling. It is only a list of links. You can add additional links to this file as needed.

The second file contains framework-specific styling.

Support for ERB or Haml

If you are using ERB for Rails views, the RailsLayout gem will generate ERB files.

If you are using Haml, the RailsLayout gem will generate Haml files instead.

Rails Composer

The Rails Composer tool, an application template used to create starter applications, uses the RailsLayout gem to generate the layout files used in various starter applications. You can use Rails Composer to generate entire applications.

Usage Example

Look at the Learn Rails example application to see how the generated files from the RailsLayout gem are used. You’ll find details about the example application in the book Learn Ruby on Rails.

Learn Ruby on Rails

Documentation

See these articles for information about how to set up the application layout:

Installing a Front-End Framework

Instead of following the instructions for Twitter Bootstrap or Zurb Foundation to install a front-end framework, add the gems you need. Then use the RailsLayout gem. It will set up your assets files.

Add the gems you need to your Rails application Gemfile:

Twitter Bootstrap 2.3

gem 'bootstrap-sass', '~> 2.3.2.2'

Twitter Bootstrap 3.0

gem 'bootstrap-sass'

Zurb Foundation 4.0

gem 'compass-rails', '~> 2.0.alpha.0'
gem 'zurb-foundation'

Zurb Foundation 5.0

gem 'foundation-rails'

Note: Check the status of these issues before using Foundation 5.0:

Use Bundler

Use Bundler to install the gem:

$ bundle install

Install the RailsLayout Gem

Add it to your Rails application Gemfile:

group :development do
  gem 'rails_layout'
end

You don’t need the gem deployed to production, so put it in the development group.

If you want to use a newer unreleased version from GitHub:

group :development do
  gem 'rails_layout', github: 'RailsApps/rails_layout'
end

Use Bundler to install the gem:

$ bundle install

Generate an Application Layout

Generate application layout files for the framework you will use.

Generate a Simple Layout

To create a set of simple layout files:

$ rails generate layout simple

Use --force if you want to overwrite existing files:

$ rails generate layout simple --force

See the files that are generated:

The RailsLayout gem will create the file:

Twitter Bootstrap 2.3 Layout

To create layout files for use with Twitter Bootstrap 2.3:

$ rails generate layout bootstrap2

Use --force if you want to overwrite existing files:

$ rails generate layout bootstrap2 --force

See the files that are generated:

The RailsLayout gem will create the file:

and modify the file:

Twitter Bootstrap 3.0 Layout

To create layout files for use with Twitter Bootstrap 3.0:

$ rails generate layout bootstrap3

Use --force if you want to overwrite existing files:

$ rails generate layout bootstrap3 --force

See the files that are generated:

The RailsLayout gem will create the file:

and modify the file:

Zurb Foundation 4.0 Layout

To create layout files for use with Zurb Foundation 4.0:

$ rails generate layout foundation4

Use --force if you want to overwrite existing files:

$ rails generate layout foundation4 --force

See the files that are generated:

The RailsLayout gem will create the file:

and modify the file:

Zurb Foundation 5.0 Layout

To create layout files for use with Zurb Foundation 5.0:

$ rails generate layout foundation5

Use --force if you want to overwrite existing files:

$ rails generate layout foundation5 --force

See the files that are generated:

The RailsLayout gem will create the file:

and modify the file:

Reverting to None

To revert your application to a default application layout:

$ rails generate layout none

The RailsLayout gem will remove any files it may have added:

  • app/views/layouts/_messages.html.erb
  • app/views/layouts/_navigation.html.erb
  • app/assets/stylesheets/simple.css
  • app/assets/stylesheets/bootstrap_and_overrides.css.scss
  • app/assets/stylesheets/foundation_and_overrides.css.scss
  • app/assets/stylesheets/framework_and_overrides.css.scss

Additionally, it will restore these files to the default versions:

  • app/views/layouts/application.html.erb
  • app/assets/javascripts/application.js

The file app/assets/stylesheets/application.css.scss will contain a CSS rule but you can ignore it or remove it.

Navigation Links for Devise

If you are using Devise for authentication, you can generate a navigation links partial containing links for Devise.

$ rails generate navigation --force

This creates a file app/views/layouts/_navigation_links.html.erb:

<%# add navigation links to this file %>
<li><%= link_to 'Home', root_path %></li>
<li><%= link_to 'About', page_path('about') %></li>
<li><%= link_to 'Contact', new_contact_path %></li>
<% if user_signed_in? %>
  <li><%= link_to 'Logout', destroy_user_session_path, :method=>'delete' %></li>
<% else %>
  <li><%= link_to 'Login', new_user_session_path %></li>
<% end %>
<% if user_signed_in? %>
  <li><%= link_to 'Edit account', edit_user_registration_path %></li>
<% else %>
  <li><%= link_to 'Sign up', new_user_registration_path %></li>
<% end %>
<% if user_signed_in? %>
  <% if current_user.has_role? :admin %>
    <li><%= link_to 'Admin', users_path %></li>
  <% end %>
<% end %>

The full set of links will be created if the following files are found in your application:

  • app/views/devise/sessions/new.html.erb
  • app/views/devise/registrations/new.html.erb
  • app/views/users/index.html.erb

These files will be present in your application if you have created custom views for Devise.

The rails generate navigation command is used to populate the navigation bar in starter applications created by the Rails Composer tool.

Help

To see help messages:

$ rails generate layout --help

Issues

Any issues? Please create an issue on GitHub. Reporting issues (and patching!) helps everyone.

Credits

Daniel Kehoe maintains this gem as part of the RailsApps project.

Please see the CHANGELOG for a list of contributors.

Is the gem useful to you? Follow the project on Twitter: @rails_apps. I’d love to know you were helped out by the gem.

MIT License

MIT License

Copyright © 2013 Daniel Kehoe

githalytics.com alpha

About

Generates Rails application layout files for various front-end frameworks.

License:MIT License


Languages

Language:Ruby 63.8%Language:JavaScript 22.5%Language:CSS 13.7%