diff options
author | José Valim <jose.valim@gmail.com> | 2012-05-17 10:19:27 -0700 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2012-05-17 10:19:27 -0700 |
commit | f5ebc9a232fbbee188be432ddecbbf961162ef2a (patch) | |
tree | 2a9cf8bb248c4385669825377a831e8b483e1ff3 /actionpack/lib | |
parent | 6ada771a08196d8a5d790f8b4b2224aa8e1748b3 (diff) | |
parent | 8bea607265a2c9bb9bb2188b0a79089ca373b814 (diff) | |
download | rails-f5ebc9a232fbbee188be432ddecbbf961162ef2a.tar.gz rails-f5ebc9a232fbbee188be432ddecbbf961162ef2a.tar.bz2 rails-f5ebc9a232fbbee188be432ddecbbf961162ef2a.zip |
Merge pull request #6309 from steveklabnik/fix-2394
Created a Raw handler for templates.
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_view/template/handlers.rb | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/handlers/raw.rb | 11 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/resolver.rb | 4 |
3 files changed, 16 insertions, 1 deletions
diff --git a/actionpack/lib/action_view/template/handlers.rb b/actionpack/lib/action_view/template/handlers.rb index 4e22bec6cc..41b14373a3 100644 --- a/actionpack/lib/action_view/template/handlers.rb +++ b/actionpack/lib/action_view/template/handlers.rb @@ -4,10 +4,12 @@ module ActionView #:nodoc: module Handlers #:nodoc: autoload :ERB, 'action_view/template/handlers/erb' autoload :Builder, 'action_view/template/handlers/builder' + autoload :Raw, 'action_view/template/handlers/raw' def self.extended(base) base.register_default_template_handler :erb, ERB.new base.register_template_handler :builder, Builder.new + base.register_template_handler :raw, Raw.new end @@template_handlers = {} diff --git a/actionpack/lib/action_view/template/handlers/raw.rb b/actionpack/lib/action_view/template/handlers/raw.rb new file mode 100644 index 0000000000..0c0d1fffcb --- /dev/null +++ b/actionpack/lib/action_view/template/handlers/raw.rb @@ -0,0 +1,11 @@ +module ActionView + module Template::Handlers + class Raw + def call(template) + escaped = template.source.gsub(':', '\:') + + '%q:' + escaped + ':;' + end + end + end +end diff --git a/actionpack/lib/action_view/template/resolver.rb b/actionpack/lib/action_view/template/resolver.rb index 08155af013..fa2038f78d 100644 --- a/actionpack/lib/action_view/template/resolver.rb +++ b/actionpack/lib/action_view/template/resolver.rb @@ -171,7 +171,9 @@ module ActionView def extract_handler_and_format(path, default_formats) pieces = File.basename(path).split(".") pieces.shift - handler = Template.handler_for_extension(pieces.pop) + extension = pieces.pop + ActiveSupport::Deprecation.warn "The file #{path} did not specify a template handler. The default is currently ERB, but will change to RAW in the future." unless extension + handler = Template.handler_for_extension(extension) format = pieces.last && Mime[pieces.last] [handler, format] end |