Class: Lutaml::UmlRepository::StaticSite::DataTransformer

Inherits:
Object
  • Object
show all
Includes:
Lutaml::Uml::ModelHelpers, AssociationSerialization
Defined in:
lib/lutaml/uml_repository/static_site/data_transformer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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, options = {}) ⇒ DataTransformer

Returns a new instance of DataTransformer.



26
27
28
29
30
31
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 26

def initialize(repository, options = {})
  @repository = repository
  @options = default_options.merge(options)
  @id_generator = IDGenerator.new
  @generalization_map = build_generalization_map
end

Instance Attribute Details

#id_generatorObject (readonly)

Returns the value of attribute id_generator.



24
25
26
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 24

def id_generator
  @id_generator
end

#optionsObject (readonly)

Returns the value of attribute options.



24
25
26
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 24

def options
  @options
end

#repositoryObject (readonly)

Returns the value of attribute repository.



24
25
26
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 24

def repository
  @repository
end

Instance Method Details

#transformObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/lutaml/uml_repository/static_site/data_transformer.rb', line 33

def transform
  Models::SpaDocument.new(
    metadata: Serializers::MetadataBuilder.new(repository).build,
    package_tree: Serializers::PackageTreeBuilder.new(repository,
                                                      id_generator).build,
    packages: Serializers::PackageSerializer.new(repository,
                                                 id_generator, options).build_map,
    classes: Serializers::ClassSerializer.new(repository, id_generator,
                                              options, inheritance_resolver).build_map,
    attributes: Serializers::AttributeSerializer.new(repository,
                                                     id_generator, options).build_map,
    associations: build_associations_map,
    operations: Serializers::OperationSerializer.new(repository,
                                                     id_generator).build_map,
    diagrams: if options[:include_diagrams]
                Serializers::DiagramSerializer.new(
                  repository, id_generator, options
                ).build_map
              else
                {}
              end,
  )
end