Class: Capsium::Package::ManifestConfig

Inherits:
Lutaml::Model::Serializable
  • Object
show all
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

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeManifestConfig

Returns a new instance of ManifestConfig.

Parameters:



24
# File 'sig/capsium/package/manifest_config.rbs', line 24

def initialize: (?resources: Hash[String, Resource] resources) -> void

Instance Attribute Details

#resourcesHash[String, Resource]

Returns the value of attribute resources.

Returns:



22
23
24
# File 'sig/capsium/package/manifest_config.rbs', line 22

def resources
  @resources
end

Class Method Details

.from_json(json) ⇒ instance

Parameters:

  • json (String)

Returns:

  • (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.

Parameters:



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.

Parameters:



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

Returns:



58
59
60
61
# File 'lib/capsium/package/manifest_config.rb', line 58

def sort!
  self.resources = resources.sort.to_h
  self
end

#to_hashHash[String, untyped]

Returns:

  • (Hash[String, untyped])


35
# File 'sig/capsium/package/manifest_config.rbs', line 35

def to_hash: () -> Hash[String, untyped]

#to_jsonString

Parameters:

  • args (Object)

Returns:

  • (String)


34
# File 'sig/capsium/package/manifest_config.rbs', line 34

def to_json: (*untyped args) -> String