class Shogun::Presenters
Public Class Methods
new(resources:, cast:, includes: [], meta: {}, links: {}, linked: {})
click to toggle source
# 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
Public Instance Methods
each(&block)
click to toggle source
# File lib/shogun/presenters.rb, line 16 def each(&block) @sources.each(&block) end
linked()
click to toggle source
# File lib/shogun/presenters.rb, line 24 def linked @linked end
links()
click to toggle source
# 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
meta()
click to toggle source
# File lib/shogun/presenters.rb, line 20 def meta @meta end
Private Instance Methods
includes()
click to toggle source
# File lib/shogun/presenters.rb, line 40 def includes @includes end
namespace()
click to toggle source
# File lib/shogun/presenters.rb, line 36 def namespace @cast.const_get("NAMESPACE") end