class ActiveModelSerializers::Adapter::Base
def self.inherited(subclass)
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
-
(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)
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)
see https://github.com/rails-api/active_model_serializers/pull/965
def serialization_options(options) options ||= {} # rubocop:disable Lint/UselessAssignment end
def transform(options)
-
(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)
-
(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