Class: AbstractSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/mealib/abstract_serializer.rb

Class Method Summary collapse

Class Method Details

.available_attributesObject



19
20
21
# File 'lib/mealib/abstract_serializer.rb', line 19

def available_attributes
  []
end

.optsObject



23
24
25
# File 'lib/mealib/abstract_serializer.rb', line 23

def opts
  @opts
end

.serialize(model, attributes: available_attributes, opts: {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/mealib/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