Puppet Function: archive::assemble_nexus_url

Defined in:
lib/puppet/functions/archive/assemble_nexus_url.rb
Function type:
Ruby 4.x API

Summary

Assembles a complete nexus URL from the base url and query parameters

Overview

archive::assemble_nexus_url(Stdlib::HTTPUrl $nexus_url, Hash $params)Stdlib::HTTPUrl

Parameters:

  • nexus_url (Stdlib::HTTPUrl)

    The base nexus URL

  • params (Hash)

    The query parameters as a hash

Returns:

  • (Stdlib::HTTPUrl)

    The assembled URL



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/puppet/functions/archive/assemble_nexus_url.rb', line 8

Puppet::Functions.create_function(:'archive::assemble_nexus_url') do
  # @param nexus_url
  #   The base nexus URL
  # @param params
  #   The query parameters as a hash
  #
  # @return [Stdlib::HTTPUrl]
  #   The assembled URL
  dispatch :default_impl do
    param 'Stdlib::HTTPUrl', :nexus_url
    param 'Hash', :params
    return_type 'Stdlib::HTTPUrl'
  end

  def default_impl(nexus_url, params)
    service_relative_url = 'service/local/artifact/maven/content'

    query_string = params.to_a.map { |x| "#{x[0]}=#{CGI.escape(x[1])}" }.join('&')

    "#{nexus_url}/#{service_relative_url}?#{query_string}"
  end
end