class PlainSerializer::Base

The base class

Public Class Methods

new(*args) click to toggle source
# File lib/plain_serializer/base.rb, line 11
def initialize(*args)
  Helpers.extract_options!(args)

  @attributes = args
end

Private Class Methods

define_attribute(name) click to toggle source
# File lib/plain_serializer/base.rb, line 36
def define_attribute(name)
  define_method(name) do |entity|
    entity.send(name)
  end
end

Public Instance Methods

serialize(entity) click to toggle source
# File lib/plain_serializer/base.rb, line 17
def serialize(entity)
  return if entity.nil?

  @attributes.each_with_object({}) do |attribute, result|
    result[attribute] = send(attribute, entity)
  end
end
serialize_collection(entities) click to toggle source
# File lib/plain_serializer/base.rb, line 25
def serialize_collection(entities)
  return if entities.nil?

  entities.each_with_object([]) do |entity, result|
    result << serialize(entity)
  end
end