a79b2cdf43
Like the grep function, but we can now reject members of an array based on a pattern.
31 lines
589 B
Ruby
31 lines
589 B
Ruby
#
|
|
# reject.rb
|
|
#
|
|
|
|
module Puppet::Parser::Functions
|
|
newfunction(:reject, :type => :rvalue, :doc => <<-EOS) do |args|
|
|
This function searches through an array and rejects all elements that match
|
|
the provided regular expression.
|
|
|
|
*Examples:*
|
|
|
|
reject(['aaa','bbb','ccc','aaaddd'], 'aaa')
|
|
|
|
Would return:
|
|
|
|
['bbb','ccc']
|
|
EOS
|
|
|
|
if (args.size != 2)
|
|
raise Puppet::ParseError,
|
|
"reject(): Wrong number of arguments given #{args.size} for 2"
|
|
end
|
|
|
|
ary = args[0]
|
|
pattern = Regexp.new(args[1])
|
|
|
|
ary.reject { |e| e =~ pattern }
|
|
end
|
|
end
|
|
|
|
# vim: set ts=2 sw=2 et :
|