Module: LinkedRails::Controller::Delta

Includes:
Helpers::DeltaHelper
Defined in:
lib/linked_rails/controller/delta.rb

Instance Method Summary collapse

Methods included from Helpers::DeltaHelper

#delta_iri, #invalidate_collection_delta, #invalidate_parent_collections_delta, #invalidate_resource_delta, #resource_added_delta, #resource_removed_delta, #same_as_statement, #singular_added_delta, #singular_removed_delta

Instance Method Details

#changed_relations_triples(resource, inverted = nil) ⇒ Object

rubocop:disable Metrics/AbcSize



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/linked_rails/controller/delta.rb', line 12

def changed_relations_triples(resource, inverted = nil) # rubocop:disable Metrics/AbcSize
  resource.previously_changed_relations.flat_map do |key, value|
    if key.to_s.ends_with?('_collection')
      changed_collection_triples(resource, key)
    else
      destructed = resource.send(:association_has_destructed?, key)
      records = value.relationship_type == :has_many ? resource.send(key) : [resource.send(key)]
      changed_relation_triples(value.predicate, destructed, records - [inverted], resource)
    end
  end
end

#changes_triples(resource) ⇒ Object



8
9
10
# File 'lib/linked_rails/controller/delta.rb', line 8

def changes_triples(resource)
  resource_serializer(resource)&.send(:repository).statements
end