class SimpleJsonapi::Node::ObjectLinks

Represents a links object (a collection of links).

@!attribute [r] object

@return [Object]

@!attribute [r] link_definitions

@return [Hash{Symbol => Definition::Link}]

Attributes

object[R]

Public Class Methods

new(object:, link_definitions:, **options) click to toggle source

@param object [Object] @param link_definitions [Hash{Symbol => Definition::Link}] @param options see {Node::Base#initialize} for additional parameters

Calls superclass method SimpleJsonapi::Node::Base::new
# File lib/simple_jsonapi/node/object_links.rb, line 14
def initialize(object:, link_definitions:, **options)
  super(options)

  @object = object
  @link_definitions = link_definitions
end

Public Instance Methods

as_jsonapi() click to toggle source

@return [Hash{Symbol => Hash}]

# File lib/simple_jsonapi/node/object_links.rb, line 22
def as_jsonapi
  if link_definitions_to_render.any?
    json = {}
    link_definitions_to_render.each do |name, defn|
      json[name] = evaluate(defn.value_proc, object)
    end
    { links: json }
  else
    {}
  end
end

Private Instance Methods