Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/packages/rpm/repository_metadata/build_repomd_xml.rb')
-rw-r--r--app/services/packages/rpm/repository_metadata/build_repomd_xml.rb60
1 files changed, 0 insertions, 60 deletions
diff --git a/app/services/packages/rpm/repository_metadata/build_repomd_xml.rb b/app/services/packages/rpm/repository_metadata/build_repomd_xml.rb
deleted file mode 100644
index 84614196254..00000000000
--- a/app/services/packages/rpm/repository_metadata/build_repomd_xml.rb
+++ /dev/null
@@ -1,60 +0,0 @@
-# frozen_string_literal: true
-module Packages
- module Rpm
- module RepositoryMetadata
- class BuildRepomdXml
- attr_reader :data
-
- ROOT_ATTRIBUTES = {
- xmlns: 'http://linux.duke.edu/metadata/repo',
- 'xmlns:rpm': 'http://linux.duke.edu/metadata/rpm'
- }.freeze
- ALLOWED_DATA_VALUE_KEYS = %i[checksum open-checksum location timestamp size open-size].freeze
-
- # Expected `data` structure
- #
- # data = {
- # filelists: {
- # checksum: { type: "sha256", value: "123" },
- # location: { href: "repodata/123-filelists.xml.gz" },
- # ...
- # },
- # ...
- # }
- def initialize(data)
- @data = data
- end
-
- def execute
- build_repomd
- end
-
- private
-
- def build_repomd
- Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
- xml.repomd(ROOT_ATTRIBUTES) do
- xml.revision Time.now.to_i
- build_data_info(xml)
- end
- end.to_xml
- end
-
- def build_data_info(xml)
- data.each do |filename, info|
- xml.data(type: filename) do
- build_file_info(info, xml)
- end
- end
- end
-
- def build_file_info(info, xml)
- info.slice(*ALLOWED_DATA_VALUE_KEYS).each do |key, attributes|
- value = attributes.delete(:value)
- xml.method_missing(key, value, attributes)
- end
- end
- end
- end
- end
-end