Class: Packages::Rpm::RepositoryMetadata::UpdateXmlService
- Inherits:
-
Object
- Object
- Packages::Rpm::RepositoryMetadata::UpdateXmlService
- Defined in:
- app/services/packages/rpm/repository_metadata/update_xml_service.rb
Constant Summary collapse
- BUILDERS =
{ other: ::Packages::Rpm::RepositoryMetadata::BuildOtherXmlService, primary: ::Packages::Rpm::RepositoryMetadata::BuildPrimaryXmlService, filelist: ::Packages::Rpm::RepositoryMetadata::BuildFilelistXmlService }.freeze
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(filename:, xml: nil, data: {}) ⇒ UpdateXmlService
constructor
A new instance of UpdateXmlService.
Constructor Details
#initialize(filename:, xml: nil, data: {}) ⇒ UpdateXmlService
Returns a new instance of UpdateXmlService.
12 13 14 15 16 17 18 19 |
# File 'app/services/packages/rpm/repository_metadata/update_xml_service.rb', line 12 def initialize(filename:, xml: nil, data: {}) @builder_class = BUILDERS[filename] raise ArgumentError, "Filename must be one of: #{BUILDERS.keys.join(', ')}" if @builder_class.nil? @xml = Nokogiri::XML(xml) if xml.present? @data = data @filename = filename end |
Instance Method Details
#execute ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'app/services/packages/rpm/repository_metadata/update_xml_service.rb', line 21 def execute return build_empty_structure if xml.blank? remove_existing_packages update_xml_document update_package_count xml.to_xml end |