Created
June 10, 2011 17:49
-
-
Save sishen/1019347 to your computer and use it in GitHub Desktop.
Nokogiri Template Builder. (Rails 3.0)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'action_view' | |
module ActionView | |
module Template::Handlers | |
class NokogiriBuilder | |
class_attribute :default_format | |
self.default_format = Mime::XML | |
def call(template) | |
require 'nokogiri' | |
"xml = ::Nokogiri::XML::Builder.new { |xml|" + | |
template.source + | |
"}.to_xml;" | |
end | |
end | |
end | |
end | |
ActionView::Template.register_template_handler :nokogiri, ActionView::Template::Handlers::NokogiriBuilder.new |
Are you still using this? It is not working with rails 3.2.6.
Still working at rails 4.2.8
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Placing files like this in the
lib
directory is sufficient. If you have many builders(handlers), then adding alib/builders/
orlib/handlers/
directory may be better. Note that you'll need to add those paths to your application config with something like:This will add all subdirectories in
lib
to your application auto load path. You could just add the specific paths you want to require.The template file extension is your choice. In this gist,
NokogiriBuilder.new
is registered to handle files with the extension:nokogiri