# frozen_string_literal: true # Una lista de valores class MetadataArray < MetadataTemplate include Metadata::IndexableConcern include Metadata::AlwaysPublicConcern # El valor por defecto es una array vacía # # @return [Array] def default_value super || [] end # @return [String] def to_s value.join(', ') end # Obtiene el valor desde el documento, convirtiéndolo a Array si no lo # era ya, por retrocompabilidad. # # @return [Array] def document_value [super].flatten(1).compact end private # Eliminar valores vacíos # # XXX: Por qué eliminábamos el punto del final? # # @todo Sanitizar otros valores # @param :values [Array] # @return [Array] def sanitize(values) values.map do |v| case v when String then super(v).sub(/\.\z/, '') else v end end.select(&:present?) end end