Class: SimpleJsonapi::Node::Document::Base Abstract
- Defined in:
- lib/simple_jsonapi/node/document/base.rb
Overview
This class is abstract.
Represents a JSONAPI document.
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Base
#extras, #fields_spec, #include_spec, #root_node, #serializer, #serializer_inferrer, #sort_spec
Instance Method Summary collapse
- #append_included_resource(resource_node) ⇒ Node::Resource::Full
- #as_jsonapi ⇒ Hash{Symbol => Hash}
- #included_resource?(resource_node) ⇒ Boolean
-
#initialize(links: nil, meta: nil, **options) ⇒ Base
constructor
A new instance of Base.
Constructor Details
#initialize(links: nil, meta: nil, **options) ⇒ Base
Returns a new instance of Base.
8 9 10 11 12 13 14 15 16 |
# File 'lib/simple_jsonapi/node/document/base.rb', line 8 def initialize(links: nil, meta: nil, **) @data_node = @links_json = @meta_json = @errors_node = nil super(.merge(root_node: self)) (.merge(links: links, meta: )) @links_json = links if links&.any? @meta_json = if &.any? end |
Instance Method Details
#append_included_resource(resource_node) ⇒ Node::Resource::Full
40 41 42 |
# File 'lib/simple_jsonapi/node/document/base.rb', line 40 def append_included_resource(resource_node) included_node.append_included_resource(resource_node) end |
#as_jsonapi ⇒ Hash{Symbol => Hash}
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/simple_jsonapi/node/document/base.rb', line 19 def as_jsonapi doc = {} doc.merge!(@data_node.as_jsonapi) if @data_node doc.merge!(@errors_node.as_jsonapi) if @errors_node doc.merge!(included_node.as_jsonapi) doc[:links] = @links_json if @links_json doc[:meta] = @meta_json if @meta_json # jsonapi doc end |
#included_resource?(resource_node) ⇒ Boolean
34 35 36 |
# File 'lib/simple_jsonapi/node/document/base.rb', line 34 def included_resource?(resource_node) included_node.included_resource?(resource_node) end |