mustache template handling in rails 3.x
Ruby JavaScript
Switch branches/tags
Nothing to show
Pull request Compare This branch is 149 commits behind agoragames:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


A Rails 3.x (yes, even Rails 3.1) compatible Mustache Template Handler, with support for partials and a couple extra niceties to make sharing the raw templates with client-side javascript a little easier.


gem "stache"

Install the gem. If you want to override any of the configuration options (see stache/config), toss an initializer in config/initializers and:

Stache.config do |c|
  c.template_base_path = "..."  # this is probably the one you'll want to change
                                # it defaults to app/templates
# or if the block style ain't yer thang, just:
Stache.template_base_path = File.join(Rails.root, "app", "şablon")

There is as of right now one provided helper, template_include_tag. Give it the name of a partial and it will write it raw to a script block. On the todo list is the ability to customize this helper a little more :).

A View Class of your Very Own

To facilitate easy integration, 'Stache comes packaged with a fully-functioning subclass of Mustache, called Stache::View. It will try to find a more appropriate view class to provide to the template renderer based on the template name, but if one cannot be found it will automatically give ya a Stache::View so you can have something.

Needless to say, it's probably better if your custom View objects are subclasses of Stache::View. That way we can all be sure that the handler will render correctly.

An example by way of explanation:

With a template app/templates/profiles/index, Stache will look for a view named Profiles::Index, and, if not found, will just use the base Stache::View.

Of Note

This is early code, ripped out from an upcoming project. It probably has some rough edges.


  • more and better integration tests
  • automated tests across different rails versions
  • other helpers, etc, as desired

Thanks to

This project builds on work done by the following people and projects:

So: thanks a ton to those guys.

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.


Copyright (c) 2011 Matt Wilson / Agora Games. See LICENSE for details.