diff options
author | Travis Fields <travis@puppetlabs.com> | 2015-01-13 17:16:10 -0800 |
---|---|---|
committer | Travis Fields <travis@puppetlabs.com> | 2015-01-13 17:16:10 -0800 |
commit | ac3e51bac57ecc4b29965b5df5f10c2934b61cd0 (patch) | |
tree | 71413b757c0e0ec4d21727386979354e50099fdc /lib/puppet/functions/type_of.rb | |
parent | 80f09623b63cf6946b5913b629911e2c49b5d1dd (diff) | |
parent | 8db1f2e2f082cd688fa061fd6840cd0cea747232 (diff) |
Merge branch 'master' into 4.5.x
Diffstat (limited to 'lib/puppet/functions/type_of.rb')
-rw-r--r-- | lib/puppet/functions/type_of.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/puppet/functions/type_of.rb b/lib/puppet/functions/type_of.rb new file mode 100644 index 0000000..02cdd4d --- /dev/null +++ b/lib/puppet/functions/type_of.rb @@ -0,0 +1,17 @@ +# Returns the type when passed a value. +# +# @example how to compare values' types +# # compare the types of two values +# if type_of($first_value) != type_of($second_value) { fail("first_value and second_value are different types") } +# @example how to compare against an abstract type +# unless type_of($first_value) <= Numeric { fail("first_value must be Numeric") } +# unless type_of{$first_value) <= Collection[1] { fail("first_value must be an Array or Hash, and contain at least one element") } +# +# See the documentation for "The Puppet Type System" for more information about types. +# See the `assert_type()` function for flexible ways to assert the type of a value. +# +Puppet::Functions.create_function(:type_of) do + def type_of(value) + Puppet::Pops::Types::TypeCalculator.infer_set(value) + end +end |