class Capsium::Package::ManifestConfig
Canonical manifest.json model: an object keyed by package-relative resource path. The legacy gem form ({βcontentβ: [{file, mime}]}) is accepted on read and normalized; writers emit only the object form.
Public Class Methods
(String json) → instance
Source
# 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
Calls superclass method
Public Instance Methods
(ManifestConfig model, untyped value) → void
Source
# 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
(ManifestConfig model, Hash[String, untyped] doc) → void
Source
# 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
() → ManifestConfig
Source
# File lib/capsium/package/manifest_config.rb, line 58 def sort! self.resources = resources.sort.to_h self end