Bh · Bootstrap Helpers

A set of Ruby helpers that streamlines the use of Bootstrap 3 components in HTML views.

The full documentation is available at

Build Status Coverage Status Dependency Status Code Climate Online docs Gem Version

Bootstrap 3 is a great framework, but requires many lines of HTML code even for simple components. For instance, you need to write the following HTML to show a dismissible alert:

<div class="alert alert-info alert-dismissible" role="alert">
  <button type="button" class="close" data-dismiss="alert">
    <span aria-hidden="true">&times;</span>
    <span class="sr-only">Close</span>
  You accepted the Terms of service.

Writing this for every dismissible alert is cumbersome, repetitive, and prone to errors.

With Bh, you can achieve the same result with just one line of code:

<%= alert_box 'You accepted the Terms of service.', dismissible: true %>

alert_box is only one of the helpers provided by Bh. The other ones are: bootstrap_css, bootstrap_js, bootstrap_theme_css, button_to, button, dropdown, font_awesome_css, form_for, icon, modal, navbar, nav, panel_row, panel and progress_bar.

How to install

Bh is compatible with Rails 3.2, Rails 4, Padrino and Middleman.

To include the Bh gem in your project:

  1. Add gem 'bh', '~> 1.3' to the Gemfile file of your Rails, Padrino or Middleman project.
  2. Only if you are using Middleman: open config.rb and add activate :bh.
  3. Only if you are using Padrino: open app.rb and add register Bh.

That’s all! From now on, you will be able to use any Bh helper in your views.

A comprehensive guide to Bh helpers

All the helpers available in Bh are detailed on the Bh homepage:

Bh homepage

Please proceed to for more details and examples on how to use Bh.

How to try it in your browser

The examples folder includes three sample apps that you can rapidly run in your browser and edit as you please, in order to visually appreciate the result of Bh.

If you’d like to run the test Rails app:

  1. Download the source code
  2. cd into the examples/rails folder
  3. Run bundle install
  4. Run bundle exec rails server
  5. Point your browser to

If you prefer to see the helpers inside a test Middleman app:

  1. Download the source code
  2. cd into the examples/middleman folder
  3. Run bundle install
  4. Run bundle exec middleman
  5. Point your browser to

If you prefer to see the helpers inside a test Padrino app:

  1. Download the source code
  2. cd into the examples/padrino folder
  3. Run bundle install
  4. Run bundle padrino start
  5. Point your browser to

How to update

Bh strictly follows Semantic Versioning. By indicating the version number in the '~> major.minor' format in your Gemfile, you are guaranteed that that your project won’t break when you bundle update to a new version.

Whenever a new version is released, the CHANGELOG file will include a description of what features have changed and how to upgrade your code, if necessary.

The full history of Bh versions is also available.

To stay updated with the latest releases, to receive code examples, implementation details and announcements, please consider subscribing to the Bh mailing list:

Bh mailing list

How to release new versions

If you are a manager of this project, remember to upgrade the Bh gem whenever a new feature is added or a bug gets fixed.

Make sure all the tests are passing on Travis CI, document the changes in and, bump the version, then run

rake release

Remember that the bh gem follows Semantic Versioning.

Any new release that makes backward-compatible bug fixes should bump the patch version (1.1.x).

Any new release that adds backward-compatible features should bump the minor version (1.x.0).

Any new version that breaks compatibility should bump the major version (2.0.0)

How to contribute

Bh needs your support!

If you find that a method is missing, fork the project, add the missing code, write the appropriate tests, then submit a pull request, and it will gladly be merged!

To run the tests, simply type bundle exec rspec on the command line.

Don’t hesitate to send code pull requests through GitHub and to spread the love. And don’t click here! Thanks! :)