Class: SimpleJsonapi::Node::Error
- Defined in:
- lib/simple_jsonapi/node/error.rb
Instance Attribute Summary collapse
- #error ⇒ Object readonly
Attributes inherited from Base
#extras, #fields_spec, #include_spec, #root_node, #serializer, #serializer_inferrer, #sort_spec
Instance Method Summary collapse
- #as_jsonapi ⇒ Hash{Symbol => Hash}
-
#initialize(error:, **options) ⇒ Error
constructor
A new instance of Error.
Constructor Details
#initialize(error:, **options) ⇒ Error
Returns a new instance of Error.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/simple_jsonapi/node/error.rb', line 9 def initialize(error:, **) super() @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., ) end |
Instance Attribute Details
#error ⇒ Object (readonly)
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/simple_jsonapi/node/error.rb', line 4 class Error < Base attr_reader :error # @param error [Object] # @param options see {Node::Base#initialize} for additional parameters def initialize(error:, **) super() @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., ) end # @return [Hash{Symbol => Hash}] 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 def member_definitions_to_render @member_definitions_to_render ||= serializer.member_definitions.select { |_, defn| render?(defn, error) } end end |
Instance Method Details
#as_jsonapi ⇒ Hash{Symbol => Hash}
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# 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 |