Class: Shogun::Presenters

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/shogun/presenters.rb

Instance Method Summary collapse

Constructor Details

#initialize(resources:, cast:, includes: [], meta: {}, links: {}, linked: {}) ⇒ Presenters

Returns a new instance of Presenters.



5
6
7
8
9
10
11
12
13
14
# File 'lib/shogun/presenters.rb', line 5

def initialize(resources:, cast:, includes: [], meta: {}, links: {}, linked: {})
  @cast = @cast
  @sources = resources.map do |resource|
    cast.new(resource: resource, includes: includes)
  end
  @includes = includes
  @meta = meta
  @links = links
  @linked = linked
end

Instance Method Details

#each(&block) ⇒ Object



16
17
18
# File 'lib/shogun/presenters.rb', line 16

def each(&block)
  @sources.each(&block)
end

#linkedObject



24
25
26
# File 'lib/shogun/presenters.rb', line 24

def linked
  @linked
end


28
29
30
31
32
33
34
# File 'lib/shogun/presenters.rb', line 28

def links
  @links.tap do |hash|
    includes.each do |name|
      hash.store("#{namespace}.#{name}", [host, name, "{#{namespace}.#{name}}"].join("/"))
    end
  end
end

#metaObject



20
21
22
# File 'lib/shogun/presenters.rb', line 20

def meta
  @meta
end