source: other-projects/hathitrust/vagrant-hadoop-cluster/trunk/modules/stdlib/lib/puppet/parser/functions/num2bool.rb@ 30903

Last change on this file since 30903 was 30903, checked in by davidb, 7 years ago

Vagrant provisioning files for a 4-node Hadoop cluster. See README.txt for more details

File size: 1.1 KB
Line 
1#
2# num2bool.rb
3#
4
5module Puppet::Parser::Functions
6 newfunction(:num2bool, :type => :rvalue, :doc => <<-EOS
7This function converts a number or a string representation of a number into a
8true boolean. Zero or anything non-numeric becomes false. Numbers higher then 0
9become true.
10 EOS
11 ) do |arguments|
12
13 raise(Puppet::ParseError, "num2bool(): Wrong number of arguments " +
14 "given (#{arguments.size} for 1)") if arguments.size != 1
15
16 number = arguments[0]
17
18 case number
19 when Numeric
20 # Yay, it's a number
21 when String
22 begin
23 number = Float(number)
24 rescue ArgumentError => ex
25 raise(Puppet::ParseError, "num2bool(): '#{number}' does not look like a number: #{ex.message}")
26 end
27 else
28 begin
29 number = number.to_s
30 rescue NoMethodError => ex
31 raise(Puppet::ParseError, "num2bool(): Unable to parse argument: #{ex.message}")
32 end
33 end
34
35 # Truncate Floats
36 number = number.to_i
37
38 # Return true for any positive number and false otherwise
39 return number > 0
40 end
41end
42
43# vim: set ts=2 sw=2 et :
Note: See TracBrowser for help on using the repository browser.