Module: HALDecorator::Serializer

Included in:
ClassMethods
Defined in:
lib/hal_decorator/serializer.rb

Defined Under Namespace

Classes: Error

Instance Method Summary collapse

Instance Method Details

#to_collection(resources = [], options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/hal_decorator/serializer.rb', line 14

def to_collection(resources = [], options = {})
  parameters = collection_parameters
  if parameters.nil?
    raise Error,
      "Trying to serialize a collection using #{self} which has no collection info. " \
      "Add a 'collection' spec to the serializer or use another serializer"
  end
  links = parameters.links
  curies = parameters.curies
  serialized = _serialize_attributes(parameters.attributes, resources, options)
  serialized.merge! _serialize_links(links, curies, resources, options)

  serialized_resources = resources.map { |resource| to_hash(resource, options) }
  serialized[:_embedded] = { parameters.name => serialized_resources }
  JSON.generate(serialized)
end

#to_hal(resource = nil, options = {}) ⇒ Object



9
10
11
12
# File 'lib/hal_decorator/serializer.rb', line 9

def to_hal(resource = nil, options = {})
  hash = to_hash(resource, options)
  JSON.generate(hash)
end