Class: Packages::Rpm::RepositoryMetadata::BuildRepomdXmlService

Inherits:
Object
  • Object
show all
Defined in:
app/services/packages/rpm/repository_metadata/build_repomd_xml_service.rb

Constant Summary collapse

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

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ BuildRepomdXmlService

Expected ‘data` structure

data = {

filelists: {
  checksum: { type: "sha256", value: "123" },
  location: { href: "repodata/123-filelists.xml.gz" },
  ...
},
...

}



22
23
24
# File 'app/services/packages/rpm/repository_metadata/build_repomd_xml_service.rb', line 22

def initialize(data)
  @data = data
end

Instance Method Details

#executeObject



26
27
28
29
30
31
32
33
# File 'app/services/packages/rpm/repository_metadata/build_repomd_xml_service.rb', line 26

def execute
  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