mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-24 11:56:21 +00:00
8a668e6254
las arrays se usan para campos estilo categorías, etiquetas, autorxs
45 lines
882 B
Ruby
45 lines
882 B
Ruby
# 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
|