Class: Lutaml::UmlRepository::Exporters::Markdown::PackagePageBuilder

Inherits:
Object
  • Object
show all
Includes:
Formatting
Defined in:
lib/lutaml/uml_repository/exporters/markdown/package_page_builder.rb

Instance Method Summary collapse

Methods included from Formatting

#format_cardinality, #format_stereotypes

Methods included from Lutaml::Uml::ModelHelpers

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

Constructor Details

#initialize(repository, link_resolver) ⇒ PackagePageBuilder

Returns a new instance of PackagePageBuilder.



10
11
12
13
# File 'lib/lutaml/uml_repository/exporters/markdown/package_page_builder.rb', line 10

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

Instance Method Details

#build(package, path) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/lutaml/uml_repository/exporters/markdown/package_page_builder.rb', line 15

def build(package, path)
  classes = @repository.classes_in_package(path, recursive: false)
  sub_packages = package.packages || []

  <<~MARKDOWN
    # Package: #{package.name}

    **Qualified Path**: `#{path}`

    ## Description

    #{package.definition || 'No description available.'}

    ## Statistics

    - **Direct Classes**: #{classes.size}
    - **Sub-packages**: #{sub_packages.size}

    #{build_sub_packages_section(sub_packages)}

    #{build_classes_section(classes)}

    #{build_diagrams_section(path)}

    ---

    [Back to Index](../index.md)
  MARKDOWN
end