File: assemble_nexus_url.rb

package info (click to toggle)
puppet-module-voxpupuli-archive 7.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 744 kB
  • sloc: ruby: 2,483; sh: 10; makefile: 4
file content (29 lines) | stat: -rw-r--r-- 767 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

require 'cgi'

# @summary
#   Assembles a complete nexus URL from the base url and query parameters
# @api private
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