Railbars provides a bunch of view helpers for generating handlebar templates in your rails app.
Add this line to your application's Gemfile:
gem 'railbars'
And then execute:
$ bundle
Or install it yourself as:
$ gem install railbars
Expressions are simple values
<p><%= hb('hello') %></p>
Output:
<p>{{hello}}</p>
If you have defined custom helpers and support literal params and hash params. They can be used like so:
<p><%= hb('nameOfHelper', 'firstParam', 'secondParam', {firstHash: 'a', secondHash: 1}) %></p>
Output:
<p>{{#nameOfHelper firstParam secondParam firstHash="a" secondHash=1}}</p>
Like Helpers, block helpers support params, but have the added bonus of wrapping around a block:
<%= hb('nameOfHelper', 'firstParam', 'secondParam', {firstHash: 'a', secondHash: 1}) do %>
<p>Hello</p>
<% end %>
Output:
{{#nameOfHelper firstParam secondParam firstHash="a" secondHash=1}}
<p>Hello</p>
{{/nameOfHelper}}
Handlebars Unescape are available through the hbunescape
method:
<p><%= hbunescape('hello') %></p>
Output:
<p>{{{hello}}}</p>
Handlebars Partials are available through the hbpartial
method:
<p><%= hbpartial('hello') %></p>
Output:
<p>{{> hello}}}</p>
Built in helpers such as each are also provided:
<%= hbeach('item') do %>
<li>Element</li>
<% end %>
Output:
{{#each item}}
<li>Element</li>
{{/each}}
If, like else, also has a helper with similar syntax:
<%= hbif('loggedIn') do %>
<p>Logged In</p>
<% end %>
Output:
{{#if loggedIn}}
<p>Logged In</p>
{{/each}}
Else is just a simple expression and can be placed within an if block:
<%= hbif('loggedIn') do %>
<p>Logged In</p>
<%= hbelse %>
<p>Logged Out</p>
<% end %>
Output:
{{#if loggedIn}}
<p>Logged In</p>
{{#else }}
<p>Logged Out</p>
{{/each}}
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests.
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 code of conduct.
The gem is available as open source under the terms of the MIT License.