Sha256: d30208e9c5b38a31fb43bab00d362a8bf967cfd01fb334c70cb3450d7a81ddf9
Contents?: true
Size: 1004 Bytes
Versions: 4
Compression:
Stored size: 1004 Bytes
Contents
# This file is loaded by the autoloader, and it does not find the data function support unless required relative # require 'json' require_relative 'hiera_interpolate' module Puppet::DataProviders class JsonDataProviderFactory < Puppet::Plugins::DataProviders::FileBasedDataProviderFactory def create(name, paths, parent_data_provider) JsonDataProvider.new(name, paths, parent_data_provider) end def path_extension '.json' end end class JsonDataProvider < Puppet::Plugins::DataProviders::PathBasedDataProvider include HieraInterpolate def initialize_data(path, lookup_invocation) JSON.parse(Puppet::FileSystem.read(path, :encoding => 'utf-8')) rescue JSON::ParserError => ex # Filename not included in message, so we add it here. raise Puppet::DataBinding::LookupError, "Unable to parse (#{path}): #{ex.message}" end def post_process(value, lookup_invocation) interpolate(value, lookup_invocation, true) end end end
Version data entries
4 entries across 4 versions & 1 rubygems