5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-24 12:16:22 +00:00
panel/app/models/metadata_array.rb
f 915ba0761f
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
feat: usar mixins
2023-10-06 10:53:19 -03:00

42 lines
827 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
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