class SimpleJsonapi::Node::Relationship
Represents a single relationship
object.
@!attribute [r] resource
@return [Object]
@!attribute [r] relationship_definition
@return [Definition::Relationship]
Attributes
relationship_definition[R]
resource[R]
Public Class Methods
new(resource:, relationship_definition:, **options)
click to toggle source
@param resource [Object] @param relationship_definition
[Definition::Relationship] @param options see {Node::Base#initialize} for additional parameters
Calls superclass method
SimpleJsonapi::Node::Base::new
# File lib/simple_jsonapi/node/relationship.rb, line 14 def initialize(resource:, relationship_definition:, **options) super(options) @resource = resource @relationship_definition = relationship_definition if relationship_definition.singular? @data_node = build_child_node( SimpleJsonapi::Node::RelationshipData::Singular, relationship_definition: relationship_definition, resource: related_data, add_to_included: add_to_included?, ) elsif relationship_definition.collection? @data_node = build_child_node( SimpleJsonapi::Node::RelationshipData::Collection, relationship_definition: relationship_definition, resources: related_data, add_to_included: add_to_included?, ) end @links_node = build_child_node( SimpleJsonapi::Node::ObjectLinks, object: resource, link_definitions: relationship_definition.link_definitions, ) @meta_node = build_child_node( SimpleJsonapi::Node::ObjectMeta, object: resource, meta_definitions: relationship_definition.meta_definitions, ) end
Public Instance Methods
as_jsonapi()
click to toggle source
@return [Hash{Symbol => Hash}]
# File lib/simple_jsonapi/node/relationship.rb, line 55 def as_jsonapi rel_json = {} rel_json.merge!(@data_node.as_jsonapi) if @data_node rel_json.merge!(@links_node.as_jsonapi) if @links_node rel_json.merge!(@meta_node.as_jsonapi) if @meta_node rel_json end
relationship_name()
click to toggle source
@return [String]
# File lib/simple_jsonapi/node/relationship.rb, line 50 def relationship_name relationship_definition.name end
Private Instance Methods
add_to_included?()
click to toggle source
# File lib/simple_jsonapi/node/relationship.rb, line 75 def add_to_included? include_spec.include?(relationship_name) end