Class: Packages::Rpm::ParsePackageService
- Inherits:
-
Object
- Object
- Packages::Rpm::ParsePackageService
- Includes:
- Gitlab::Utils::StrongMemoize
- Defined in:
- app/services/packages/rpm/parse_package_service.rb
Constant Summary collapse
- BUILD_ATTRIBUTES_METHOD_NAMES =
%i[changelogs requirements provides].freeze
- STATIC_ATTRIBUTES =
%i[name version release summary description arch license sourcerpm group buildhost packager vendor].freeze
- CHANGELOGS_RPM_KEYS =
%i[changelogtext changelogtime].freeze
- REQUIREMENTS_RPM_KEYS =
%i[requirename requireversion requireflags].freeze
- PROVIDES_RPM_KEYS =
%i[providename provideflags provideversion].freeze
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(package_file) ⇒ ParsePackageService
constructor
A new instance of ParsePackageService.
Constructor Details
#initialize(package_file) ⇒ ParsePackageService
Returns a new instance of ParsePackageService.
16 17 18 |
# File 'app/services/packages/rpm/parse_package_service.rb', line 16 def initialize(package_file) @rpm = RPM::File.new(package_file) end |
Instance Method Details
#execute ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/services/packages/rpm/parse_package_service.rb', line 20 def execute raise ArgumentError, 'Unable to parse package' unless valid_package? { files: rpm.files || [], epoch: [:epoch] || '0', changelogs: build_changelogs, requirements: build_requirements, provides: build_provides, directories: [:dirnames] }.merge(extract_static_attributes) end |