summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Wilczynski <krzysztof.wilczynski@linux.com>2011-04-29 17:30:04 +0100
committerKrzysztof Wilczynski <krzysztof.wilczynski@linux.com>2011-04-29 17:30:04 +0100
commit14b4ca8de2c8802bc599bb45aca5ecbba5ed98c9 (patch)
treec300e72f648da463228b051cf169c500ed60bd6c
parentb3dd2207c3eefe4a74f86188330a0117b6f03da9 (diff)
downloadpuppet-stdlib-14b4ca8de2c8802bc599bb45aca5ecbba5ed98c9.tar.gz
puppet-stdlib-14b4ca8de2c8802bc599bb45aca5ecbba5ed98c9.tar.bz2
Added support for strings to reverse.
Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
-rw-r--r--reverse.rb12
1 files changed, 6 insertions, 6 deletions
diff --git a/reverse.rb b/reverse.rb
index 6aa11f4..86dee28 100644
--- a/reverse.rb
+++ b/reverse.rb
@@ -2,8 +2,6 @@
# reverse.rb
#
-# TODO(Krzysztof Wilczynski): Support for strings would be nice too ...
-
module Puppet::Parser::Functions
newfunction(:reverse, :type => :rvalue, :doc => <<-EOS
EOS
@@ -12,13 +10,15 @@ module Puppet::Parser::Functions
raise(Puppet::ParseError, "reverse(): Wrong number of arguments " +
"given (#{arguments.size} for 1)") if arguments.size < 1
- array = arguments[0]
+ value = arguments[0]
+ klass = value.class
- if not array.is_a?(Array)
- raise(Puppet::ParseError, 'reverse(): Requires an array to work with')
+ if not [Array, String].include?(klass)
+ raise(Puppet::ParseError, 'reverse(): Requires either an ' +
+ 'array or string to work with')
end
- result = array.reverse
+ result = value.reverse
return result
end