module BBLib::Serializer::ClassMethods

Public Instance Methods

_ancestor_dont_serialize_fields() click to toggle source
# File lib/bblib/core/mixins/serializer.rb, line 28
def _ancestor_dont_serialize_fields
  ancestors.reverse.flat_map do |ancestor|
    next unless ancestor.respond_to?(:_dont_serialize_fields) && ancestor != self
    ancestor._dont_serialize_fields
  end.compact.uniq
end
_ancestor_serialize_fields() click to toggle source
# File lib/bblib/core/mixins/serializer.rb, line 15
def _ancestor_serialize_fields
  hash = {}
  ancestors.reverse.map do |ancestor|
    next unless ancestor.respond_to?(:_serialize_fields) && ancestor != self
    hash = hash.deep_merge(ancestor._serialize_fields)
  end
  hash
end
_dont_serialize_fields() click to toggle source
# File lib/bblib/core/mixins/serializer.rb, line 24
def _dont_serialize_fields
  @_dont_serialize_fields ||= _ancestor_dont_serialize_fields
end
_serialize_fields() click to toggle source
# File lib/bblib/core/mixins/serializer.rb, line 11
def _serialize_fields
  @_serialize_fields ||= _ancestor_serialize_fields
end
dont_serialize_method(method) click to toggle source
# File lib/bblib/core/mixins/serializer.rb, line 35
def dont_serialize_method(method)
  _dont_serialize_fields.push(method) unless _dont_serialize_fields.include?(method)
end
serialize_method(name, method = nil, **opts) click to toggle source
# File lib/bblib/core/mixins/serializer.rb, line 39
def serialize_method(name, method = nil, **opts)
  return false if method == :serialize || name == :serialize && method.nil?
  _serialize_fields[name.to_sym] = {
    method: (method || name).to_sym
  }.merge(opts)
end