Module: PackageResolved
- Defined in:
- gems/spm_version_updates/lib/spm_version_updates/package_resolved.rb
Overview
Parsing for Package.resolved files.
Handles both the v1 format (pins nested under "object") and the v2+ format
(pins at the top level). This is shared between the Xcode-project source mode
and the Swift package manifest source mode.
Defined Under Namespace
Classes: MalformedFileError
Class Method Summary collapse
-
.pins_from(path) ⇒ Array<Hash>
Extract structured pins from a
Package.resolvedfile. -
.versions_from(path) ⇒ Hash<String, String>
Extract the resolved version (or revision, when no version is pinned) for every pin in a
Package.resolvedfile.
Class Method Details
.pins_from(path) ⇒ Array<Hash>
Extract structured pins from a Package.resolved file.
39 40 41 42 43 |
# File 'gems/spm_version_updates/lib/spm_version_updates/package_resolved.rb', line 39 def self.pins_from(path) contents = load_contents(path) pins = contents["pins"] || contents.dig("object", "pins") || [] pins.map { |pin| pin_record(pin) } end |
.versions_from(path) ⇒ Hash<String, String>
Extract the resolved version (or revision, when no version is pinned) for
every pin in a Package.resolved file.
29 30 31 |
# File 'gems/spm_version_updates/lib/spm_version_updates/package_resolved.rb', line 29 def self.versions_from(path) pins_from(path).to_h { |pin| [pin["normalized_url"], pin["version"] || pin["revision"]] } end |