module Haml::Template

def precompiled_method_return_value_with_haml_xss

def precompiled_method_return_value_with_haml_xss
  "::Haml::Util.html_safe(#{precompiled_method_return_value_without_haml_xss})"
end

def rails_xss_safe?; true; end}

def rails_xss_safe?; true; end}

def try_enabling_xss_integration

Returns:
  • (Boolean) - Whether the XSS integration was enabled.
def try_enabling_xss_integration
  return false unless (ActionView::Base.respond_to?(:xss_safe?) && ActionView::Base.xss_safe?) ||
    # We check for ActiveSupport#on_load here because if we're loading Haml that way, it means:
    # A) we're in Rails 3 so XSS support is always on, and
    # B) we might be in Rails 3 beta 3 where the load order is broken and xss_safe? is undefined
    (defined?(ActiveSupport) && Haml::Util.has?(:public_method, ActiveSupport, :on_load))
  Haml::Template.options[:escape_html] = true
  Haml::Util.module_eval {def rails_xss_safe?; true; end}
  require 'haml/helpers/xss_mods'
  Haml::Helpers.send(:include, Haml::Helpers::XssMods)
  Haml::Compiler.module_eval do
    def precompiled_method_return_value_with_haml_xss
      "::Haml::Util.html_safe(#{precompiled_method_return_value_without_haml_xss})"
    end
    alias_method :precompiled_method_return_value_without_haml_xss, :precompiled_method_return_value
    alias_method :precompiled_method_return_value, :precompiled_method_return_value_with_haml_xss
  end
  true
end