Module: HALPresenter::Serializer

Included in:
HALPresenter
Defined in:
lib/hal_presenter/serializer.rb

Defined Under Namespace

Classes: Error

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



34
35
36
# File 'lib/hal_presenter/serializer.rb', line 34

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

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



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/hal_presenter/serializer.rb', line 48

def to_collection(resources = [], options = {})
  unless can_serialize_collection?
    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
  options = options.dup
  options[:paginate] = HALPresenter.paginate unless options.key? :paginate
  options[:_depth] ||= 0
  hash = to_collection_hash(resources, options)
  move_curies_to_root! hash
  return hash if options[:as_hash]

  JSON.generate(hash)
end

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



38
39
40
41
42
43
44
45
46
# File 'lib/hal_presenter/serializer.rb', line 38

def to_hal(resource = nil, options = {})
  options = options.dup
  options[:_depth] ||= 0
  hash = to_hash(resource, options)
  move_curies_to_root! hash
  return hash if options[:as_hash]

  JSON.generate(hash)
end