# Railbars Railbars provides a bunch of view helpers for generating handlebar templates in your rails app. ## Installation Add this line to your application's Gemfile: ```ruby gem 'railbars' ``` And then execute: $ bundle Or install it yourself as: $ gem install railbars ## Usage ### Expressions Expressions are simple values ```erb
<%= hb('hello') %>
``` Output: ```html{{hello}}
``` ### Helpers If you have defined custom helpers and support literal params and hash params. They can be used like so: ```erb<%= hb('nameOfHelper', 'firstParam', 'secondParam', {firstHash: 'a', secondHash: 1}) %>
``` Output: ```html{{#nameOfHelper firstParam secondParam firstHash="a" secondHash=1}}
``` ### Block Helpers Like Helpers, block helpers support params, but have the added bonus of wrapping around a block: ```erb <%= hb('nameOfHelper', 'firstParam', 'secondParam', {firstHash: 'a', secondHash: 1}) do %>Hello
<% end %> ``` Output: ```html {{#nameOfHelper firstParam secondParam firstHash="a" secondHash=1}}Hello
{{/nameOfHelper}} ``` ### Unescape Handlebars Unescape are available through the `hbunescape` method: ```erb<%= hbunescape('hello') %>
``` Output: ```html{{{hello}}}
``` ### Partials Handlebars Partials are available through the `hbpartial` method: ```erb<%= hbpartial('hello') %>
``` Output: ```html{{> hello}}}
``` ### Each Built in helpers such as each are also provided: ```erb <%= hbeach('item') do %>Logged In
<% end %> ``` Output: ```html {{#if loggedIn}}Logged In
{{/each}} ``` ### Else Else is just a simple expression and can be placed within an if block: ```erb <%= hbif('loggedIn') do %>Logged In
<%= hbelse %>Logged Out
<% end %> ``` Output: ```html {{#if loggedIn}}Logged In
{{#else }}Logged Out
{{/each}} ``` ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/mrlhumphreys/railbars. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).