From 33b565a0d76b07f354e2e145e7e03e5a5db69e48 Mon Sep 17 00:00:00 2001 From: Markus Roberts Date: Thu, 25 Mar 2010 15:54:33 -0700 Subject: Fix for #3424 and tests to prove it. The original pure ruby yaml patch missed some edge cases; specifically, classes that were modified by the syck version to directly call it and thus never reached the pure ruby version. This adds monkey patches to all of those case which we might reasonably care about (omitting, for example, calls within the syck version to itself) and tests which show that the monkey patch works. --- lib/puppet/util/monkey_patches.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'lib/puppet/util') diff --git a/lib/puppet/util/monkey_patches.rb b/lib/puppet/util/monkey_patches.rb index 05d319356..53ae1b9c0 100644 --- a/lib/puppet/util/monkey_patches.rb +++ b/lib/puppet/util/monkey_patches.rb @@ -20,11 +20,13 @@ class Symbol end end -class Object - def to_yaml - ZAML.dump(self) +[Object, Exception, Integer, Struct, Date, Time, Range, Regexp, Hash, Array, Float, String, FalseClass, TrueClass, Symbol, NilClass, Class].each { |cls| + cls.class_eval do + def to_yaml + ZAML.dump(self) + end end -end +} def YAML.dump(*args) ZAML.dump(*args) -- cgit