Sha256: 768b64745966334dfe6942fab32d5f7699e3b6e20107ff83b0e2b8179b98ea23

Contents?: true

Size: 1.66 KB

Versions: 4

Compression:

Stored size: 1.66 KB

Contents

require 'json'
module Abstractor
  module Serializers
    class AbstractorAbstractionSchemaSerializer
      def initialize(abstractor_abstraction_schema)
        @abstractor_abstraction_schema = abstractor_abstraction_schema
      end

      def as_json(options = {})
        {
          "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

      private

        attr_reader :abstractor_abstraction_schema
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
abstractor-4.3.3 lib/abstractor/serializers/abstractor_abstraction_schema_serializer.rb
abstractor-4.3.2 lib/abstractor/serializers/abstractor_abstraction_schema_serializer.rb
abstractor-4.3.1 lib/abstractor/serializers/abstractor_abstraction_schema_serializer.rb
abstractor-4.3.0 lib/abstractor/serializers/abstractor_abstraction_schema_serializer.rb