# 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 alias indexable_values value private # TODO: Sanitizar otros valores # XXX: Por qué eliminamos el punto del final? def sanitize(values) values.map do |v| case v when String then super(v).sub(/\.\z/, '') else v end end.select(&:present?) end end