source: other-projects/hathitrust/vagrant-hadoop-cluster/trunk/modules/stdlib/lib/puppet/parser/functions/camelcase.rb@ 30903

Last change on this file since 30903 was 30903, checked in by davidb, 8 years ago

Vagrant provisioning files for a 4-node Hadoop cluster. See README.txt for more details

File size: 892 bytes
Line 
1#
2# camelcase.rb
3#
4
5module Puppet::Parser::Functions
6 newfunction(:camelcase, :type => :rvalue, :doc => <<-EOS
7Converts the case of a string or all strings in an array to camel case.
8 EOS
9 ) do |arguments|
10
11 raise(Puppet::ParseError, "camelcase(): Wrong number of arguments " +
12 "given (#{arguments.size} for 1)") if arguments.size < 1
13
14 value = arguments[0]
15 klass = value.class
16
17 unless [Array, String].include?(klass)
18 raise(Puppet::ParseError, 'camelcase(): Requires either ' +
19 'array or string to work with')
20 end
21
22 if value.is_a?(Array)
23 # Numbers in Puppet are often string-encoded which is troublesome ...
24 result = value.collect { |i| i.is_a?(String) ? i.split('_').map{|e| e.capitalize}.join : i }
25 else
26 result = value.split('_').map{|e| e.capitalize}.join
27 end
28
29 return result
30 end
31end
32
33# vim: set ts=2 sw=2 et :
Note: See TracBrowser for help on using the repository browser.