diff options
author | Luke Kanies <luke@madstop.com> | 2009-04-09 17:43:17 -0500 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2009-04-22 14:39:37 +1000 |
commit | 7a91e1f5c03ed02eed4c45fddd740b899650bf36 (patch) | |
tree | fd6b7ec003f1e04384ca164a742e3fd373e40cba /lib/puppet/util/rails/reference_serializer.rb | |
parent | c30ede56f576aa6032221ed45510f50b0303ef7a (diff) | |
download | puppet-7a91e1f5c03ed02eed4c45fddd740b899650bf36.tar.gz puppet-7a91e1f5c03ed02eed4c45fddd740b899650bf36.tar.xz puppet-7a91e1f5c03ed02eed4c45fddd740b899650bf36.zip |
Changing rails value serialization to deal with booleans
The database was automatically converting booleans
to strings, and value comparison was not working correctly
as a result.
Signed-off-by: Luke Kanies <luke@madstop.com>
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 |