Last change
on this file since 30960 was 30960, checked in by davidb, 7 years ago |
Switch to using Puppet to provision machine. Strongly based on files developed for spark-hdfs cluster
|
File size:
1.1 KB
|
Line | |
---|
1 | #
|
---|
2 | # num2bool.rb
|
---|
3 | #
|
---|
4 |
|
---|
5 | module Puppet::Parser::Functions
|
---|
6 | newfunction(:num2bool, :type => :rvalue, :doc => <<-EOS
|
---|
7 | This function converts a number or a string representation of a number into a
|
---|
8 | true boolean. Zero or anything non-numeric becomes false. Numbers higher then 0
|
---|
9 | become 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
|
---|
41 | end
|
---|
42 |
|
---|
43 | # vim: set ts=2 sw=2 et :
|
---|
Note:
See
TracBrowser
for help on using the repository browser.