Class: Lutaml::UmlRepository::StaticSite::Serializers::OperationSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/uml_repository/static_site/serializers/operation_serializer.rb

Instance Method Summary collapse

Constructor Details

#initialize(repository, id_generator) ⇒ OperationSerializer

Returns a new instance of OperationSerializer.



8
9
10
11
# File 'lib/lutaml/uml_repository/static_site/serializers/operation_serializer.rb', line 8

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

Instance Method Details

#build_mapObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/lutaml/uml_repository/static_site/serializers/operation_serializer.rb', line 13

def build_map
  operations = {}
  @repository.classes_index.each do |klass|
    next unless klass.respond_to?(:operations) && klass.operations

    klass.operations.each do |op|
      id = @id_generator.operation_id(op, klass)
      operations[id] = serialize(op, klass, id)
    end
  end
  operations
end

#serialize(operation, owner, id) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/lutaml/uml_repository/static_site/serializers/operation_serializer.rb', line 26

def serialize(operation, owner, id)
  {
    id: id,
    name: operation.name,
    visibility: operation.visibility,
    returnType: operation.return_type,
    owner: @id_generator.class_id(owner),
    ownerName: owner.name,
    parameters: serialize_parameters(operation),
    isStatic: operation.respond_to?(:is_static) ? operation.is_static : false,
    isAbstract: operation.respond_to?(:is_abstract) ? operation.is_abstract : false,
  }
end