Class: Lutaml::UmlRepository::PackageMetadata

Inherits:
Model::Serializable
  • Object
show all
Defined in:
lib/lutaml/uml_repository/package_metadata.rb

Overview

PackageMetadata holds metadata about a LUR package.

This class provides structured metadata that can be embedded in LUR (LutaML UML Repository) packages, including information about the package name, version, publisher, licensing, and other descriptive information.

Metadata is stored in the package’s metadata.yaml file and can be specified when building packages via CLI or API.

Examples:

Creating metadata programmatically

 = PackageMetadata.new(
  name: "Urban Planning Model",
  version: "2.3.0",
  publisher: "City Planning Department",
  license: "CC-BY-4.0",
  description: "UML model for urban planning workflows",
  keywords: "urban, planning, infrastructure",
  homepage: "https://example.com/urban-model",
  authors: ["Jane Doe", "John Smith"],
  maintainers: "planning-team@example.com"
)

Validating metadata

.validate!  # Raises error if name or version missing

Serializing to YAML

yaml = .to_yaml

Loading from YAML

 = PackageMetadata.from_yaml(yaml_string)

Instance Method Summary collapse

Instance Method Details

#validateArray<Lutaml::Model::Error>

Validate that required fields are present.

Returns:

  • (Array<Lutaml::Model::Error>)

    Array of validation errors



65
66
67
68
69
70
71
72
73
74
# File 'lib/lutaml/uml_repository/package_metadata.rb', line 65

def validate(*)
  errors = []
  if name.nil? || name.empty?
    errors << Lutaml::Model::Error.new("name is required")
  end
  if version.nil? || version.empty?
    errors << Lutaml::Model::Error.new("version is required")
  end
  errors
end