Class: Lutaml::UmlRepository::StaticSite::Serializers::PackageTreeBuilder

Inherits:
Object
  • Object
show all
Includes:
Lutaml::Uml::ModelHelpers
Defined in:
lib/lutaml/uml_repository/static_site/serializers/package_tree_builder.rb

Instance Method Summary collapse

Methods included from Lutaml::Uml::ModelHelpers

#class_type_for, #format_cardinality, #normalize_stereotypes, #parse_cardinality, #qualified_name_for

Constructor Details

#initialize(repository, id_generator) ⇒ PackageTreeBuilder

Returns a new instance of PackageTreeBuilder.



14
15
16
17
# File 'lib/lutaml/uml_repository/static_site/serializers/package_tree_builder.rb', line 14

def initialize(repository, id_generator)
  @repository = repository
  @id_generator = id_generator
end

Instance Method Details

#buildObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/lutaml/uml_repository/static_site/serializers/package_tree_builder.rb', line 19

def build
  root_packages = @repository.document.packages || @repository.packages_index.select do |pkg|
    pkg.namespace.nil? ||
      !pkg.namespace.is_a?(Lutaml::Uml::Package)
  end

  if root_packages.size == 1
    build_tree_node(root_packages.first)
  else
    build_virtual_root(root_packages)
  end
end