Class: Oat::Adapters::Siren

Inherits:
Oat::Adapter show all
Defined in:
lib/oat/adapters/siren.rb

Instance Method Summary collapse

Methods inherited from Oat::Adapter

#to_hash

Constructor Details

#initialize(*args) ⇒ Siren

Returns a new instance of Siren.



6
7
8
9
10
# File 'lib/oat/adapters/siren.rb', line 6

def initialize(*args)
  super
  data[:links] = []
  data[:entities] = []
end

Instance Method Details

#entities(name, collection, serializer_class = nil, &block) ⇒ Object



32
33
34
35
36
# File 'lib/oat/adapters/siren.rb', line 32

def entities(name, collection, serializer_class = nil, &block)
  collection.each do |obj|
    entity name, obj, serializer_class, &block
  end
end

#entity(name, obj, serializer_class = nil, &block) ⇒ Object



28
29
30
# File 'lib/oat/adapters/siren.rb', line 28

def entity(name, obj, serializer_class = nil, &block)
  data[:entities] << serializer_from_block_or_class(obj, serializer_class, &block)
end


16
17
18
# File 'lib/oat/adapters/siren.rb', line 16

def link(rel, opts = {})
  data[:links] << {rel: [rel]}.merge(opts)
end

#properties(&block) ⇒ Object



20
21
22
# File 'lib/oat/adapters/siren.rb', line 20

def properties(&block)
  data[:properties].merge! yield_props(&block)
end

#property(key, value) ⇒ Object



24
25
26
# File 'lib/oat/adapters/siren.rb', line 24

def property(key, value)
  data[:properties][key] = value
end

#type(*types) ⇒ Object



12
13
14
# File 'lib/oat/adapters/siren.rb', line 12

def type(*types)
  data[:class] = types
end