summaryrefslogtreecommitdiff
path: root/app/serializers/base_serializer.rb
blob: aeb01dc2ad522ad6030056a2f1c919358d8499b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class BaseSerializer
  def initialize(parameters = {})
    @entity = self.class.entity_class
    @request = EntityRequest.new(parameters)
    @opts = { request: @request }
  end

  def set(parameters)
    @request.merge!(parameters)
    self
  end

  def represent(resource, opts = {})
    @entity.represent(resource, @opts.reverse_merge(opts))
  end

  def self.entity(entity_class)
    @entity_class ||= entity_class
  end

  def self.entity_class
    @entity_class
  end
end