diff options
Diffstat (limited to 'actionpack/lib/action_view/template')
-rw-r--r-- | actionpack/lib/action_view/template/handler.rb | 4 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/handlers/erb.rb | 8 | ||||
-rw-r--r-- | actionpack/lib/action_view/template/resolver.rb | 6 |
3 files changed, 11 insertions, 7 deletions
diff --git a/actionpack/lib/action_view/template/handler.rb b/actionpack/lib/action_view/template/handler.rb index 221d1bd5c5..8ecc911519 100644 --- a/actionpack/lib/action_view/template/handler.rb +++ b/actionpack/lib/action_view/template/handler.rb @@ -1,5 +1,5 @@ -require "active_support/core_ext/class/inheritable_attributes" require "action_dispatch/http/mime_type" +require 'active_support/core_ext/class/attribute' # Legacy TemplateHandler stub module ActionView @@ -23,7 +23,7 @@ module ActionView end class Template::Handler - extlib_inheritable_accessor :default_format + class_attribute :default_format self.default_format = Mime::HTML def self.call(template) diff --git a/actionpack/lib/action_view/template/handlers/erb.rb b/actionpack/lib/action_view/template/handlers/erb.rb index 93a4315108..4573a440d1 100644 --- a/actionpack/lib/action_view/template/handlers/erb.rb +++ b/actionpack/lib/action_view/template/handlers/erb.rb @@ -6,7 +6,7 @@ module ActionView module Template::Handlers class Erubis < ::Erubis::Eruby def add_preamble(src) - src << "@output_buffer = ActionView::SafeBuffer.new;" + src << "@output_buffer = ActiveSupport::SafeBuffer.new;" end def add_text(src, text) @@ -15,7 +15,11 @@ module ActionView end def add_expr_literal(src, code) - src << '@output_buffer << ((' << code << ').to_s);' + if code =~ /\s*raw\s+(.*)/ + src << "@output_buffer.safe_concat((" << $1 << ").to_s);" + else + src << '@output_buffer << ((' << code << ').to_s);' + end end def add_expr_escaped(src, code) diff --git a/actionpack/lib/action_view/template/resolver.rb b/actionpack/lib/action_view/template/resolver.rb index 340a6afe5e..6878067f7c 100644 --- a/actionpack/lib/action_view/template/resolver.rb +++ b/actionpack/lib/action_view/template/resolver.rb @@ -1,5 +1,6 @@ require "pathname" require "active_support/core_ext/class" +require "active_support/core_ext/array/wrap" require "action_view/template" module ActionView @@ -11,7 +12,7 @@ module ActionView def self.register_detail(name, options = {}) registered_details[name] = lambda do |val| - val ||= yield + val = Array.wrap(val || yield) val |= [nil] unless options[:allow_nil] == false val end @@ -141,8 +142,7 @@ module ActionView end end - # OMG HAX - # TODO: remove hax + # TODO: remove hack class FileSystemResolverWithFallback < Resolver def initialize(path, options = {}) super(options) |