aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/core_ext/string/output_safety.rb13
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