diff options
author | Mark Chappell <mchappel@redhat.com> | 2014-04-22 09:36:28 +0200 |
---|---|---|
committer | Mark Chappell <mchappel@redhat.com> | 2014-09-22 19:49:50 +0200 |
commit | e2d7f3bb89a91d3aff6f9810d69bd84bc82ffb29 (patch) | |
tree | e98f261a7fdafde7d4612f0770e20bbb832bf4a6 /lib/puppet/parser/functions/downcase.rb | |
parent | b347cc83e24e7ef51dc340bc753b96af026050f8 (diff) | |
download | puppet-stdlib-e2d7f3bb89a91d3aff6f9810d69bd84bc82ffb29.tar.gz puppet-stdlib-e2d7f3bb89a91d3aff6f9810d69bd84bc82ffb29.tar.bz2 |
(MODULES-707) chomp() fails because generate() no longer returns a string
We need to use
unless value.is_a?(String) || value.is_a?(Array)
rather than
klass = value.class
unless [String, Array].include?(klass)
because the klass version enforces type checking which is too strict, and does
not allow us to accept objects wich have extended String (or Array).
For example, generate() function now returns Puppet::Util::Execution::ProcessOutput
which is just a very simple extension of String. While this in it's self was
not intentional (PUP-2306) it is not unreasonable to cope with objects which
extend Strings
Diffstat (limited to 'lib/puppet/parser/functions/downcase.rb')
-rw-r--r-- | lib/puppet/parser/functions/downcase.rb | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/puppet/parser/functions/downcase.rb b/lib/puppet/parser/functions/downcase.rb index 4066d21..040b84f 100644 --- a/lib/puppet/parser/functions/downcase.rb +++ b/lib/puppet/parser/functions/downcase.rb @@ -12,9 +12,8 @@ Converts the case of a string or all strings in an array to lower case. "given (#{arguments.size} for 1)") if arguments.size < 1 value = arguments[0] - klass = value.class - unless [Array, String].include?(klass) + unless value.is_a?(Array) || value.is_a?(String) raise(Puppet::ParseError, 'downcase(): Requires either ' + 'array or string to work with') end |