Class: Typelizer::SerializerPlugins::AMS

Inherits:
Base
  • Object
show all
Defined in:
lib/typelizer/serializer_plugins/ams.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize, #meta_fields, #root_key

Constructor Details

This class inherits a constructor from Typelizer::SerializerPlugins::Base

Instance Method Details

#propertiesObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/typelizer/serializer_plugins/ams.rb', line 6

def properties
  serializer._attributes_data.merge(serializer._reflections).flat_map do |key, association|
    type = association.options[:serializer] ? context.interface_for(association.options[:serializer]) : nil
    adapter = ActiveModelSerializers::Adapter.configured_adapter
    Property.new(
      name: adapter.transform_key_casing!(key.to_s, association.options),
      type: type,
      optional: association.options.key?(:if) || association.options.key?(:unless),
      multi: association.respond_to?(:collection?) && association.collection?,
      deprecated: (association.options[:deprecated] if association.options.key?(:deprecated)),
      column_name: association.name.to_s
    )
  end
end