Update stdlib
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / empty.rb
1 #
2 # empty.rb
3 #
4
5 module Puppet::Parser::Functions
6   newfunction(:empty, :type => :rvalue, :doc => <<-EOS
7 Returns true if the variable is empty.
8     EOS
9   ) do |arguments|
10
11     raise(Puppet::ParseError, "empty(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.size < 1
12
13     value = arguments[0]
14
15     unless value.is_a?(Array) || value.is_a?(Hash) || value.is_a?(String) || value.is_a?(Numeric)
16       raise(Puppet::ParseError, 'empty(): Requires either array, hash, string or integer to work with')
17     end
18
19     if value.is_a?(Numeric)
20       return false
21     else
22       result = value.empty?
23
24       return result
25     end
26   end
27 end
28
29 # vim: set ts=2 sw=2 et :