Class: Abstractor::Serializers::AbstractorAbstractionSchemaSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/abstractor/serializers/abstractor_abstraction_schema_serializer.rb

Instance Method Summary collapse

Constructor Details

#initialize(abstractor_abstraction_schema) ⇒ AbstractorAbstractionSchemaSerializer

Returns a new instance of AbstractorAbstractionSchemaSerializer.



5
6
7
# File 'lib/abstractor/serializers/abstractor_abstraction_schema_serializer.rb', line 5

def initialize(abstractor_abstraction_schema)
  @abstractor_abstraction_schema = abstractor_abstraction_schema
end

Instance Method Details

#as_json(options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/abstractor/serializers/abstractor_abstraction_schema_serializer.rb', line 9

def as_json(options = {})
  { "abstractor_abstraction_schema" =>
    {
      "predicate" => abstractor_abstraction_schema.predicate,
      "display_name" => abstractor_abstraction_schema.display_name,
      "abstractor_object_type" => abstractor_abstraction_schema.abstractor_object_type.value,
      "preferred_name" => abstractor_abstraction_schema.preferred_name,
      "predicate_variants" => abstractor_abstraction_schema.abstractor_abstraction_schema_predicate_variants.map { |abstractor_abstraction_schema_predicate_variant|  { 'value' => abstractor_abstraction_schema_predicate_variant.value  } },
      "object_values" => abstractor_abstraction_schema.abstractor_object_values.map do |abstractor_object_value|
        {
          'value' => abstractor_object_value.value,
          'properties' => abstractor_object_value.properties.nil? ? nil : JSON.parse(abstractor_object_value.properties),
          'vocabulary_code' => abstractor_object_value.vocabulary_code,
          'vocabulary' => abstractor_object_value.vocabulary,
          'vocabulary_version' => abstractor_object_value.vocabulary_version,
          'object_value_variants' => abstractor_object_value.abstractor_object_value_variants.map { |abstractor_object_value_variant| { 'value' => abstractor_object_value_variant.value } }
        }
      end
    }
  }
end