Class: NutsJson::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/nuts_json/serializer.rb

Instance Method Summary collapse

Constructor Details

#initialize(resource = nil, pattern = nil) ⇒ Serializer

Returns a new instance of Serializer.



7
8
9
10
# File 'lib/nuts_json/serializer.rb', line 7

def initialize(resource = nil, pattern = nil)
  @resource = resource
  @pattern = pattern
end

Instance Method Details

#keyObject



18
19
20
# File 'lib/nuts_json/serializer.rb', line 18

def key
  :data
end

#keysObject



22
23
24
# File 'lib/nuts_json/serializer.rb', line 22

def keys
  key.id2name.pluralize.intern
end

#to_json(*_args) ⇒ Object



12
13
14
15
16
# File 'lib/nuts_json/serializer.rb', line 12

def to_json(*_args)
  return Oj.dump({ key => self.send(@pattern, @resource) }, mode: :compat) unless @resource.respond_to?(:to_a)

  Oj.dump({ keys => @resource.map { |data| self.send(@pattern, data) }}, mode: :compat)
end