diff options
author | Joseph Yaworski <joseph.yaworski@fireeye.com> | 2016-03-28 13:18:28 -0400 |
---|---|---|
committer | Joseph Yaworski <joseph.yaworski@fireeye.com> | 2016-04-10 22:28:03 -0400 |
commit | bfe6cf68b3b09f5927ec8f12f6661f45e9c1be58 (patch) | |
tree | 3547021fe685217fc568505555912258c521ebbf /lib/puppet/parser/functions/is_email_address.rb | |
parent | db2a321434768b6b97e8c1101f6465e43c774c6d (diff) |
Add validate_email_address function
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 : |