Class: Capsium::Package::ManifestConfig
- Inherits:
-
Lutaml::Model::Serializable
- Object
- Lutaml::Model::Serializable
- Capsium::Package::ManifestConfig
- Defined in:
- lib/capsium/package/manifest_config.rb,
sig/capsium/package/manifest_config.rbs
Overview
Canonical manifest.json model: an object keyed by package-relative resource path. The legacy array form is normalized on read; writers emit only the object form.
Instance Attribute Summary collapse
-
#resources ⇒ Hash[String, Resource]
Returns the value of attribute resources.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ ManifestConfig
constructor
A new instance of ManifestConfig.
- #resources_from_json(model, value) ⇒ void
- #resources_to_json(model, doc) ⇒ void
- #sort! ⇒ ManifestConfig
- #to_hash ⇒ Hash[String, untyped]
- #to_json ⇒ String
Constructor Details
#initialize ⇒ ManifestConfig
Returns a new instance of ManifestConfig.
24 |
# File 'sig/capsium/package/manifest_config.rbs', line 24
def initialize: (?resources: Hash[String, Resource] resources) -> void
|
Instance Attribute Details
#resources ⇒ Hash[String, Resource]
Returns the value of attribute resources.
22 23 24 |
# File 'sig/capsium/package/manifest_config.rbs', line 22 def resources @resources end |
Class Method Details
.from_json(json) ⇒ instance
33 34 35 36 37 |
# File 'lib/capsium/package/manifest_config.rb', line 33 def self.from_json(json) doc = JSON.parse(json) doc["resources"] ||= legacy_resources(doc.delete("content")) if doc.key?("content") super(JSON.generate(doc)) end |
Instance Method Details
#resources_from_json(model, value) ⇒ void
This method returns an undefined value.
46 47 48 49 50 |
# File 'lib/capsium/package/manifest_config.rb', line 46 def resources_from_json(model, value) model.resources = (value || {}).to_h do |path, attributes| [path, Resource.from_json(JSON.generate(attributes))] end end |
#resources_to_json(model, doc) ⇒ void
This method returns an undefined value.
52 53 54 55 56 |
# File 'lib/capsium/package/manifest_config.rb', line 52 def resources_to_json(model, doc) doc["resources"] = model.resources.sort.to_h do |path, resource| [path, JSON.parse(resource.to_json)] end end |
#sort! ⇒ ManifestConfig
58 59 60 61 |
# File 'lib/capsium/package/manifest_config.rb', line 58 def sort! self.resources = resources.sort.to_h self end |
#to_hash ⇒ Hash[String, untyped]
35 |
# File 'sig/capsium/package/manifest_config.rbs', line 35
def to_hash: () -> Hash[String, untyped]
|
#to_json ⇒ String
34 |
# File 'sig/capsium/package/manifest_config.rbs', line 34
def to_json: (*untyped args) -> String
|