class SimpleJsonapi::Node::ErrorSource

@!attribute [r] error

@return [Object]

@!attribute [r] source_definition

@return [Definition::ErrorSource]

Attributes

error[R]
source_definition[R]

Public Class Methods

new(error:, source_definition:, **options) click to toggle source

@param error [Object] @param source_definition [Definition::ErrorSource] @param options see {Node::Base#initialize} for additional parameters

Calls superclass method SimpleJsonapi::Node::Base::new
# File lib/simple_jsonapi/node/error_source.rb, line 12
def initialize(error:, source_definition:, **options)
  super(options)

  @error = error
  @source_definition = source_definition
end

Public Instance Methods

as_jsonapi() click to toggle source

@return [Hash{Symbol => Hash}]

# File lib/simple_jsonapi/node/error_source.rb, line 20
def as_jsonapi
  source_json = {}

  member_definitions_to_render.each do |name, defn|
    source_json[name] = evaluate(defn.value_proc, error).to_s
  end

  if source_json.any?
    { source: source_json }
  else
    {}
  end
end

Private Instance Methods

member_definitions_to_render() click to toggle source
# File lib/simple_jsonapi/node/error_source.rb, line 36
def member_definitions_to_render
  @member_definitions_to_render ||= source_definition.member_definitions.select { |_, defn| render?(defn, error) }
end