diff options
author | Guillermo Iguaran <guilleiguaran@gmail.com> | 2013-01-10 11:38:16 -0800 |
---|---|---|
committer | Guillermo Iguaran <guilleiguaran@gmail.com> | 2013-01-10 11:38:16 -0800 |
commit | 34126fa6e38b0010856d3ec8af04bdcfd9dde662 (patch) | |
tree | 411dc86a290525467203cb577826f9f87c4aa4e3 /guides | |
parent | 5be6fa5c33412a0390598b50e941c0c5d872b979 (diff) | |
parent | 38efe878c9ae66d29300bdfba867eddf84386824 (diff) | |
download | rails-34126fa6e38b0010856d3ec8af04bdcfd9dde662.tar.gz rails-34126fa6e38b0010856d3ec8af04bdcfd9dde662.tar.bz2 rails-34126fa6e38b0010856d3ec8af04bdcfd9dde662.zip |
Merge pull request #8869 from goshakkk/guides-asset-pipeline-tilt
Add asset pipeline guides section on implementing & registering own engines
Diffstat (limited to 'guides')
-rw-r--r-- | guides/source/asset_pipeline.md | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/guides/source/asset_pipeline.md b/guides/source/asset_pipeline.md index b302ef76c6..fffa31927d 100644 --- a/guides/source/asset_pipeline.md +++ b/guides/source/asset_pipeline.md @@ -720,7 +720,31 @@ A good example of this is the `jquery-rails` gem which comes with Rails as the s Making Your Library or Gem a Pre-Processor ------------------------------------------ -TODO: Registering gems on [Tilt](https://github.com/rtomayko/tilt) enabling Sprockets to find them. +As Sprockets uses [Tilt](https://github.com/rtomayko/tilt) as a generic +interface to different templating engines, your gem should just +implement the Tilt template protocol. Normally, you would subclass +`Tilt::Template` and reimplement `evaluate` method to return final +output. Template source is stored at `@code`. Have a look at +[`Tilt::Template`](https://github.com/rtomayko/tilt/blob/master/lib/tilt/template.rb) +sources to learn more. + +```ruby +module BangBang + class Template < ::Tilt::Template + # Adds a "!" to original template. + def evaluate(scope, locals, &block) + "#{@code}!" + end + end +end +``` + +Now that you have a `Template` class, it's time to associate it with an +extenstion for template files: + +```ruby +Sprockets.register_engine '.bang', BangBang::Template +``` Upgrading from Old Versions of Rails ------------------------------------ |