diff options
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/core_ext/string/output_safety.rb | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/activesupport/lib/active_support/core_ext/string/output_safety.rb b/activesupport/lib/active_support/core_ext/string/output_safety.rb index 29d6613611..c930abc003 100644 --- a/activesupport/lib/active_support/core_ext/string/output_safety.rb +++ b/activesupport/lib/active_support/core_ext/string/output_safety.rb @@ -1,6 +1,5 @@ require 'erb' require 'active_support/core_ext/kernel/singleton_class' -require 'active_support/core_ext/yaml' class ERB module Util @@ -102,10 +101,14 @@ module ActiveSupport #:nodoc: self end - unless defined?(Psych) - def to_yaml(*args) - to_str.to_yaml(*args) - end + def encode_with(coder) + coder.represent_scalar nil, to_str + end + + def to_yaml(*args) + return super() if defined?(YAML::ENGINE) && !YAML::ENGINE.syck? + + to_str.to_yaml(*args) end end end |