# frozen_string_literal: true class MetadataHasOne < MetadataBelongsTo def had_one return default_value if value_was.blank? posts.find(value, uuid: true) end def has_one return default_value if value.blank? posts.find(value, uuid: true) end def belonged_to; end def belongs_to; end def save # XXX: DRY if !changed? self[:value] = document_value return true end self[:value] = sanitize value return true unless changed? return true unless inverse? had_one&.value = nil has_one&.value = post.uuid.value true end def related_methods @related_methods ||= %i[has_one had_one].freeze end def indexable_values has_one&.title&.value end end