module ArSerializer::Serializable::ClassMethods

Public Instance Methods

_custom_preloaders() click to toggle source
# File lib/ar_serializer.rb, line 59
def _custom_preloaders
  @_custom_preloaders ||= {}
end
_serializer_field_info(name) click to toggle source
# File lib/ar_serializer.rb, line 20
def _serializer_field_info(name)
  namespaces = ArSerializer::Serializer.current_namespaces
  if namespaces
    Array(namespaces).each do |ns|
      field = _serializer_namespace(ns)[name.to_s]
      return field if field
    end
  end
  field = _serializer_namespace(nil)[name.to_s]
  if field
    field
  elsif superclass < ArSerializer::Serializable
    superclass._serializer_field_info name
  end
end
_serializer_field_keys() click to toggle source
# File lib/ar_serializer.rb, line 36
def _serializer_field_keys
  namespaces = ArSerializer::Serializer.current_namespaces
  keys = []
  if namespaces
    Array(namespaces).each do |ns|
      keys |= _serializer_namespace(ns).keys
    end
  end
  keys |= _serializer_namespace(nil).keys
  keys |= superclass._serializer_field_keys if superclass < ArSerializer::Serializable
  keys
end
_serializer_namespace(ns) click to toggle source
# File lib/ar_serializer.rb, line 16
def _serializer_namespace(ns)
  (@_serializer_field_info ||= {})[ns] ||= {}
end
define_preloader(name, &block) click to toggle source
# File lib/ar_serializer.rb, line 63
def define_preloader(name, &block)
  _custom_preloaders[name] = block
end
serializer_defaults(**args, &block) click to toggle source
# File lib/ar_serializer.rb, line 67
def serializer_defaults(**args, &block)
  serializer_field :defaults, **args, &block
end
serializer_field(*names, namespace: nil, association: nil, **option, &data_block) click to toggle source
# File lib/ar_serializer.rb, line 49
def serializer_field(*names, namespace: nil, association: nil, **option, &data_block)
  namespaces = namespace.is_a?(Array) ? namespace : [namespace]
  namespaces.each do |ns|
    names.each do |name|
      field = ArSerializer::Field.create(self, association || name, **option, &data_block)
      _serializer_namespace(ns)[name.to_s] = field
    end
  end
end