class ActiveModelSerializers::Adapter::Base

def self.inherited(subclass)

Automatically register adapters when subclassing
def self.inherited(subclass)
  ActiveModelSerializers::Adapter.register(subclass)
end

def as_json(options = nil)

def as_json(options = nil)
  serializable_hash(options)
end

def cache_check(serializer)

def cache_check(serializer)
  serializer.cache_check(self) do
    yield
  end
end

def cached_name

def cached_name
  @cached_name ||= self.class.name.demodulize.underscore
end

def default_key_transform

Returns:
  • (Symbol) - the default transform for the adapter
def default_key_transform
  :unaltered
end

def fragment_cache(cached_hash, non_cached_hash)

def fragment_cache(cached_hash, non_cached_hash)
  non_cached_hash.merge cached_hash
end

def initialize(serializer, options = {})

def initialize(serializer, options = {})
  @serializer = serializer
  @instance_options = options
end

def root

def root
  serializer.json_key.to_sym if serializer.json_key
end

def serializable_hash(_options = nil)

options = serialization_options(options)
Subclasses that implement this method must first call
def serializable_hash(_options = nil)
  fail NotImplementedError, 'This is an abstract method. Should be implemented at the concrete adapter.'
end

def serialization_options(options)

When options is +nil+, sets it to +{}+
see https://github.com/rails-api/active_model_serializers/pull/965
def serialization_options(options)
  options ||= {} # rubocop:disable Lint/UselessAssignment
end

def transform(options)

Returns:
  • (Symbol) - the transform to use

Parameters:
  • options (Object) --
def transform(options)
  return options[:key_transform] if options && options[:key_transform]
  ActiveModelSerializers.config.key_transform || default_key_transform
end

def transform_key_casing!(value, options)

Returns:
  • (Symbol) - the default transform for the adapter

Parameters:
  • options (Object) -- serializable resource options
  • value (Object) -- the value to be transformed
def transform_key_casing!(value, options)
  KeyTransform.send(transform(options), value)
end