# frozen_string_literal: true module Metadata # Hasta ahora veníamos habilitando la opción de romper # retroactivamente relaciones, sin informar que estaba sucediendo. # Con este módulo, todas las relaciones que ya tienen una relación # inversa son ignoradas. module UnusedValuesConcern extend ActiveSupport::Concern included do # Genera un Hash de { title | slug => uuid }, excluyendo el Post # actual y todos los que ya tengan una relación inversa, para no # romperla. # # @return [Hash] def values @values ||= posts.map do |p| next if p.uuid.value == post.uuid.value next unless inverse? && (p[inverse].empty? || [p[inverse].value].flatten.include?(post.uuid.value)) [title(p), p.uuid.value] end.compact.to_h end end end end