aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillermo Iguaran <guilleiguaran@gmail.com>2013-01-10 11:38:16 -0800
committerGuillermo Iguaran <guilleiguaran@gmail.com>2013-01-10 11:38:16 -0800
commit34126fa6e38b0010856d3ec8af04bdcfd9dde662 (patch)
tree411dc86a290525467203cb577826f9f87c4aa4e3
parent5be6fa5c33412a0390598b50e941c0c5d872b979 (diff)
parent38efe878c9ae66d29300bdfba867eddf84386824 (diff)
downloadrails-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
-rw-r--r--guides/source/asset_pipeline.md26
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
------------------------------------