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