#
# squeeze.rb
#
-
module Puppet::Parser::Functions
- newfunction(:squeeze, :type => :rvalue, :doc => <<-EOS
-Returns a new string where runs of the same character that occur in this set are replaced by a single character.
- EOS
- ) do |arguments|
+ newfunction(:squeeze, :type => :rvalue, :doc => <<-DOC
+ @summary
+ Returns a new string where runs of the same character that occur in this set are replaced by a single character.
+
+ @return
+ a new string where runs of the same character that occur in this set are replaced by a single character.
+ DOC
+ ) do |arguments|
- if ((arguments.size != 2) and (arguments.size != 1)) then
- raise(Puppet::ParseError, "squeeze(): Wrong number of arguments "+
- "given #{arguments.size} for 2 or 1")
+ if (arguments.size != 2) && (arguments.size != 1)
+ raise(Puppet::ParseError, "squeeze(): Wrong number of arguments given #{arguments.size} for 2 or 1")
end
item = arguments[0]
squeezeval = arguments[1]
- if item.is_a?(Array) then
- if squeezeval then
- item.collect { |i| i.squeeze(squeezeval) }
+ if item.is_a?(Array)
+ if squeezeval
+ item.map { |i| i.squeeze(squeezeval) }
else
- item.collect { |i| i.squeeze }
+ item.map { |i| i.squeeze }
end
+ elsif squeezeval
+ item.squeeze(squeezeval)
else
- if squeezeval then
- item.squeeze(squeezeval)
- else
- item.squeeze
- end
+ item.squeeze
end
-
end
end