summaryrefslogtreecommitdiff
path: root/lib/puppet/parser/functions/empty.rb
diff options
context:
space:
mode:
authorMark Chappell <mchappel@redhat.com>2014-04-22 09:36:28 +0200
committerMark Chappell <mchappel@redhat.com>2014-09-22 19:49:50 +0200
commite2d7f3bb89a91d3aff6f9810d69bd84bc82ffb29 (patch)
treee98f261a7fdafde7d4612f0770e20bbb832bf4a6 /lib/puppet/parser/functions/empty.rb
parentb347cc83e24e7ef51dc340bc753b96af026050f8 (diff)
(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/empty.rb')
-rw-r--r--lib/puppet/parser/functions/empty.rb3
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/puppet/parser/functions/empty.rb b/lib/puppet/parser/functions/empty.rb
index 80ebb86..cca620f 100644
--- a/lib/puppet/parser/functions/empty.rb
+++ b/lib/puppet/parser/functions/empty.rb
@@ -12,9 +12,8 @@ Returns true if the variable is empty.
"given (#{arguments.size} for 1)") if arguments.size < 1
value = arguments[0]
- klass = value.class
- unless [Array, Hash, String].include?(klass)
+ unless value.is_a?(Array) || value.is_a?(Hash) || value.is_a?(String)
raise(Puppet::ParseError, 'empty(): Requires either ' +
'array, hash or string to work with')
end