diff options
Diffstat (limited to 'lib/puppet/util/rails/reference_serializer.rb')
-rw-r--r-- | lib/puppet/util/rails/reference_serializer.rb | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/lib/puppet/util/rails/reference_serializer.rb b/lib/puppet/util/rails/reference_serializer.rb index 8c4f1aaff..63f109cec 100644 --- a/lib/puppet/util/rails/reference_serializer.rb +++ b/lib/puppet/util/rails/reference_serializer.rb @@ -1,18 +1,32 @@ module Puppet::Util::ReferenceSerializer def unserialize_value(val) - if val =~ /^--- [!:]/ + case val + when /^--- / YAML.load(val) + when "true" + true + when "false" + false else val end end def serialize_value(val) - if val.is_a?(Puppet::Parser::Resource::Reference) + case val + when Puppet::Parser::Resource::Reference YAML.dump(val) + when true, false + # The database does this for us, but I prefer the + # methods be their exact inverses. + # Note that this means quoted booleans get returned + # as actual booleans, but there doesn't appear to be + # a way to fix that while keeping the ability to + # search for parameters set to true. + val.to_s else val end end -end
\ No newline at end of file +end |