class AbstractSerializer

Public Class Methods

available_attributes() click to toggle source
# File lib/c80_shared/abstract_serializer.rb, line 19
def available_attributes
  []
end
opts() click to toggle source
# File lib/c80_shared/abstract_serializer.rb, line 23
def opts
  @opts
end
serialize(model, attributes: available_attributes, opts: {}) click to toggle source
# File lib/c80_shared/abstract_serializer.rb, line 8
def serialize(model, attributes: available_attributes, opts: {})
  @opts = opts
  unknown_attributes = attributes - available_attributes

  if unknown_attributes.present?
    raise StandardError, sprintf('Unknown attributes: %s', unknown_attributes.join(', '))
  end

  attributes.each_with_object({}) { |attribute, result| result.merge!(send(attribute, model)) }
end