diff options
author | Helen <helen@puppetlabs.com> | 2016-04-15 13:29:23 +0100 |
---|---|---|
committer | Helen <helen@puppetlabs.com> | 2016-04-15 13:29:23 +0100 |
commit | d9f65387c99c99177f94075fc840e7c574e07417 (patch) | |
tree | e2b1bf7362973650efdcac0a3be68df7d9bae8f6 /lib/puppet/parser/functions/is_email_address.rb | |
parent | 29961218a74bfdae96371c42a3c336e714c79a93 (diff) | |
parent | 085035dccebbf27cf2bfd7f1d9101c746f5178a2 (diff) |
Merge pull request #595 from tphoney/4.12.0_release
master to 4.12.x
Diffstat (limited to 'lib/puppet/parser/functions/is_email_address.rb')
-rw-r--r-- | lib/puppet/parser/functions/is_email_address.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/is_email_address.rb b/lib/puppet/parser/functions/is_email_address.rb new file mode 100644 index 0000000..ab8d075 --- /dev/null +++ b/lib/puppet/parser/functions/is_email_address.rb @@ -0,0 +1,21 @@ +# +# is_email_address.rb +# + +module Puppet::Parser::Functions + newfunction(:is_email_address, type: :rvalue, doc: <<-EOS +Returns true if the string passed to this function is a valid email address. + EOS + ) do |arguments| + if arguments.size != 1 + raise(Puppet::ParseError, 'is_email_address(): Wrong number of arguments '\ + "given #{arguments.size} for 1") + end + + # Taken from http://emailregex.com/ (simpler regex) + valid_email_regex = %r{\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z} + return (arguments[0] =~ valid_email_regex) == 0 + end +end + +# vim: set ts=2 sw=2 et : |