source: other-projects/hathitrust/vagrant-solr-cluster/trunk/modules/stdlib/types/compat/numeric.pp@ 30960

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.2 KB
Line 
1# Emulate the is_numeric and validate_numeric functions
2# The regex is what's currently used in is_numeric
3# validate_numeric also allows range checking, which cannot be mapped to the string parsing inside the function.
4# For full backwards compatibility, you will need to keep the validate_numeric call around to catch everything.
5# To keep your development moving forward, you can also add a deprecation warning using the Integer type:
6#
7# ```class example($value) { validate_numeric($value, 10, 0) }```
8#
9# would turn into
10#
11# ```
12# class example(Stdlib::Compat::Numeric $value) {
13# validate_numeric($value, 10, 0)
14# assert_type(Integer[0, 10], $value) |$expected, $actual| {
15# warning("The 'value' parameter for the 'ntp' class has type ${actual}, but should be ${expected}.")
16# }
17# }
18# ```
19#
20# > Note that you need to use Variant[Integer[0, 10], Float[0, 10]] if you want to match both integers and floating point numbers.
21#
22# This allows you to find all places where a consumers of your code call it with unexpected values.
23type Stdlib::Compat::Numeric = Variant[Numeric, Pattern[/^-?(?:(?:[1-9]\d*)|0)(?:\.\d+)?(?:[eE]-?\d+)?$/], Array[Variant[Numeric, Pattern[/^-?(?:(?:[1-9]\d*)|0)(?:\.\d+)?(?:[eE]-?\d+)?$/]]]]
Note: See TracBrowser for help on using the repository browser.