module NexusCli::N3Metadata
def convert_result_to_hash(custom_metadata)
def convert_result_to_hash(custom_metadata) request = {} document = REXML::Document.new(custom_metadata) REXML::XPath.each(document, "//customMetadataResponse/data/customMetadata[namespace=\"urn:nexus/user#\"]") do |row| request[row.elements["key"].text.strip] = row.elements["value"].text.strip end request end
def convert_result_to_simple_xml(custom_metadata)
def convert_result_to_simple_xml(custom_metadata) request = [] document = REXML::Document.new(custom_metadata) REXML::XPath.each(document, "//customMetadataResponse/data/customMetadata[namespace=\"urn:nexus/user#\"]") do |row| request.push(create_tag(row.elements["key"].text.strip, row.elements["value"].text.strip)) end formatter = REXML::Formatters::Pretty.new(4) formatter.compact = true document = REXML::Document.new("<artifact-resolution><data>#{request.join}</data></artifact-resolution>") out = "" formatter.write(document, out) out end
def create_base64_subject(artifact)
def create_base64_subject(artifact) return Base64.urlsafe_encode64("urn:maven/artifact##{artifact.group_id}:#{artifact.artifact_id}:#{artifact.version}::#{artifact.extension}") end
def create_metadata_hash(source, target={})
-
target
(Hash
) -- The target hash to merge with the source hash (optional) -
source
(Hash
) -- The source hash of custom metadata key:value pairs
def create_metadata_hash(source, target={}) request = [] source.merge(target).each do |key, value| request.push({:namespace => "urn:nexus/user#", :key => key, :value => value, :readOnly => false}) unless value.empty? end return request end
def create_tag(tag, value)
def create_tag(tag, value) "<#{tag}>#{value}</#{tag}>" end
def missing_custom_metadata?(custom_metadata)
def missing_custom_metadata?(custom_metadata) return !custom_metadata.match(/<data[ ]*\/>/).nil? ? true : false end
def valid_n3_key?(element)
Checks if the custom metadata key is valid.
def valid_n3_key?(element) return !element.nil? && !element.match(/^[a-zA-Z0-9]+$/).nil? ? true : false end
def valid_n3_search_type?(element)
def valid_n3_search_type?(element) return !element.nil? && ["equal", "notequal", "matches", "bounded"].include?(element) end
def valid_n3_value?(element)
Checks if the custom metadata value is valid.
def valid_n3_value?(element) return !element.nil? && !element.match(/^[^"'\\]*$/).nil? ? true : false end