module PlainSerializer::Serializable::ClassMethods

Defines required methods for base class

Public Instance Methods

define_collection_serializer(name, klass) click to toggle source
# File lib/plain_serializer/serializable.rb, line 44
def define_collection_serializer(name, klass)
  serializers[name] = klass

  define_method(name) do |entity|
    serializer(name).serialize_collection(entity.send(name))
  end
end
define_serializer(name, klass) click to toggle source
# File lib/plain_serializer/serializable.rb, line 36
def define_serializer(name, klass)
  serializers[name] = klass

  define_method(name) do |entity|
    serializer(name).serialize(entity.send(name))
  end
end
serializers() click to toggle source
# File lib/plain_serializer/serializable.rb, line 52
def serializers
  @serializers ||= {}
end
setup(*args) click to toggle source
# File lib/plain_serializer/serializable.rb, line 24
def setup(*args)
  options = Helpers.extract_options!(args)

  attributes = args + options.keys

  new(*attributes).tap do |instance|
    options.each do |serializer_name, opts|
      instance.setup_serializer(serializer_name, opts)
    end
  end
end