source: other-projects/hathitrust/vagrant-solr-cluster/trunk/modules/stdlib/lib/puppet/parser/functions/parseyaml.rb@ 30960

Last change on this file since 30960 was 30960, checked in by davidb, 7 years ago

Switch to using Puppet to provision machine. Strongly based on files developed for spark-hdfs cluster

File size: 899 bytes
Line 
1#
2# parseyaml.rb
3#
4
5module Puppet::Parser::Functions
6 newfunction(:parseyaml, :type => :rvalue, :doc => <<-EOS
7This function accepts YAML as a string and converts it into the correct
8Puppet structure.
9
10The optional second argument can be used to pass a default value that will
11be returned if the parsing of YAML string have failed.
12 EOS
13 ) do |arguments|
14 raise ArgumentError, 'Wrong number of arguments. 1 or 2 arguments should be provided.' unless arguments.length >= 1
15 require 'yaml'
16
17 begin
18 YAML::load(arguments[0]) || arguments[1]
19 # in ruby 1.9.3 Psych::SyntaxError is a RuntimeException
20 # this still needs to catch that and work also on rubies that
21 # do not have Psych available.
22 rescue StandardError, Psych::SyntaxError => e
23 if arguments[1]
24 arguments[1]
25 else
26 raise e
27 end
28 end
29
30 end
31end
32
33# vim: set ts=2 sw=2 et :
Note: See TracBrowser for help on using the repository browser.