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
# 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
  @meta = meta
  @links = links
  @linked = linked
end

Instance Method Details

#each(&block) ⇒ Object



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

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

#linkedObject



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

def linked
  @linked
end


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

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

#metaObject



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

def meta
  @meta
end