class SimpleJsonapi::Node::Error
@!attribute [r] error
@return [Object]
Attributes
error[R]
Public Class Methods
new(error:, **options)
click to toggle source
@param error [Object] @param options see {Node::Base#initialize} for additional parameters
Calls superclass method
SimpleJsonapi::Node::Base::new
# File lib/simple_jsonapi/node/error.rb, line 9 def initialize(error:, **options) super(options) @error = error @serializer = serializer_inferrer.infer(error).new @source_node = build_child_node( SimpleJsonapi::Node::ErrorSource, error: error, source_definition: serializer.source_definition, ) @links_node = build_child_node( SimpleJsonapi::Node::ObjectLinks, object: error, link_definitions: serializer.link_definitions, ) @meta_node = build_child_node( SimpleJsonapi::Node::ObjectMeta, object: error, meta_definitions: serializer.meta_definitions, ) end
Public Instance Methods
as_jsonapi()
click to toggle source
@return [Hash{Symbol => Hash}]
# File lib/simple_jsonapi/node/error.rb, line 35 def as_jsonapi json = {} member_definitions_to_render.each do |name, defn| json[name] = evaluate(defn.value_proc, error).to_s end json.merge!(@source_node.as_jsonapi) json.merge!(@links_node.as_jsonapi) json.merge!(@meta_node.as_jsonapi) json end
Private Instance Methods
member_definitions_to_render()
click to toggle source
# File lib/simple_jsonapi/node/error.rb, line 51 def member_definitions_to_render @member_definitions_to_render ||= serializer.member_definitions.select { |_, defn| render?(defn, error) } end