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)
  hash = serializable_hash(options)
  include_meta(hash)
  hash
end

def cache_check(serializer)

def cache_check(serializer)
  CachedSerializer.new(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 include_meta(json)

def include_meta(json)
  json[meta_key] = meta unless meta.blank?
  json
end

def initialize(serializer, options = {})

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

def meta

def meta
  instance_options.fetch(:meta, nil)
end

def meta_key

def meta_key
  instance_options.fetch(:meta_key, 'meta'.freeze)
end

def root

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

def serializable_hash(_options = nil)

def serializable_hash(_options = nil)
  fail NotImplementedError, 'This is an abstract method. Should be implemented at the concrete adapter.'
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