diff options
Diffstat (limited to 'lib/puppet/parser/functions')
-rw-r--r-- | lib/puppet/parser/functions/basename.rb | 12 | ||||
-rw-r--r-- | lib/puppet/parser/functions/dirname.rb | 10 | ||||
-rw-r--r-- | lib/puppet/parser/functions/re_escape.rb | 2 | ||||
-rw-r--r-- | lib/puppet/parser/functions/split.rb | 23 |
4 files changed, 41 insertions, 6 deletions
diff --git a/lib/puppet/parser/functions/basename.rb b/lib/puppet/parser/functions/basename.rb index 226d6e5..dc72537 100644 --- a/lib/puppet/parser/functions/basename.rb +++ b/lib/puppet/parser/functions/basename.rb @@ -1,9 +1,15 @@ -# basename(string) : string -# basename(string[]) : string[] +# This function has two modes of operation: +# +# basename(string) : string # # Returns the last component of the filename given as argument, which must be -# formed using forward slashes (``/..) regardless of the separator used on the +# formed using forward slashes ("/") regardless of the separator used on the # local file system. +# +# basename(string[]) : string[] +# +# Returns an array of strings with the basename of each item from the argument. +# module Puppet::Parser::Functions newfunction(:basename, :type => :rvalue) do |args| if args[0].is_a?(Array) diff --git a/lib/puppet/parser/functions/dirname.rb b/lib/puppet/parser/functions/dirname.rb index 44b4a00..ea0d50b 100644 --- a/lib/puppet/parser/functions/dirname.rb +++ b/lib/puppet/parser/functions/dirname.rb @@ -1,9 +1,15 @@ -# dirname(string) : string -# dirname(string[]) : string[] +# This function has two modes of operation: +# +# dirname(string) : string # # Returns all components of the filename given as argument except the last # one. The filename must be formed using forward slashes (``/..) regardless of # the separator used on the local file system. +# +# dirname(string[]) : string[] +# +# Returns an array of strings with the basename of each item from the argument. +# module Puppet::Parser::Functions newfunction(:dirname, :type => :rvalue) do |args| if args[0].is_a?(Array) diff --git a/lib/puppet/parser/functions/re_escape.rb b/lib/puppet/parser/functions/re_escape.rb index 6e5904b..7bee90a 100644 --- a/lib/puppet/parser/functions/re_escape.rb +++ b/lib/puppet/parser/functions/re_escape.rb @@ -1,4 +1,4 @@ -# apply regexp escaping to a string +# apply ruby regexp escaping to a string module Puppet::Parser::Functions newfunction(:re_escape, :type => :rvalue) do |args| Regexp.escape(args[0]) diff --git a/lib/puppet/parser/functions/split.rb b/lib/puppet/parser/functions/split.rb new file mode 100644 index 0000000..bffecc1 --- /dev/null +++ b/lib/puppet/parser/functions/split.rb @@ -0,0 +1,23 @@ +# This function has two modes of operation: +# +# split($string, $delimiter) : $string +# +# Split the first argument on every $delimiter. $delimiter is interpreted as +# Ruby regular expression. +# +# split($string[], $delimiter) : $string[][] +# +# Returns an array of split results with the result of applying split to each +# item from the first argument. +# +# For long-term portability it is recommended to refrain from using Ruby's +# extended RE features. +module Puppet::Parser::Functions + newfunction(:split, :type => :rvalue) do |args| + if args[0].is_a?(Array) + args.collect do |a| a.split(/#{args[1]}/) end + else + args[0].split(/#{args[1]}/) + end + end +end |