Module: PlainSerializer::Serializable::ClassMethods

Defined in:
lib/plain_serializer/serializable.rb

Overview

Defines required methods for base class

Instance Method Summary collapse

Instance Method Details

#define_collection_serializer(name, klass) ⇒ Object



44
45
46
47
48
49
50
# 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) ⇒ Object



36
37
38
39
40
41
42
# 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

#serializersObject



52
53
54
# File 'lib/plain_serializer/serializable.rb', line 52

def serializers
  @serializers ||= {}
end

#setup(*args) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# 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