aboutsummaryrefslogtreecommitdiff
path: root/lib/puppet/parser/functions/array_del.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/parser/functions/array_del.rb')
-rw-r--r--lib/puppet/parser/functions/array_del.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/array_del.rb b/lib/puppet/parser/functions/array_del.rb
new file mode 100644
index 0000000..e604916
--- /dev/null
+++ b/lib/puppet/parser/functions/array_del.rb
@@ -0,0 +1,11 @@
+Puppet::Parser::Functions::newfunction(
+ :array_del,
+ :type => :rvalue,
+ :doc => "Deletes items from an array
+
+ Example: array_del(['a','b'],'b') -> ['a']"
+) do |args|
+ raise Puppet::ParseError, 'array_del() needs two arguments' if args.length != 2
+ (res=args[0].dup).to_a.delete(args[1])
+ res
+end