source: other-projects/hathitrust/vagrant-hadoop-cluster/trunk/modules/stdlib/lib/puppet/parser/functions/parsejson.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: 692 bytes
Line 
1#
2# parsejson.rb
3#
4
5module Puppet::Parser::Functions
6 newfunction(:parsejson, :type => :rvalue, :doc => <<-EOS
7This function accepts JSON 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
16 begin
17 PSON::load(arguments[0]) || arguments[1]
18 rescue StandardError => e
19 if arguments[1]
20 arguments[1]
21 else
22 raise e
23 end
24 end
25
26 end
27end
28
29# vim: set ts=2 sw=2 et :
Note: See TracBrowser for help on using the repository browser.