mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-15 02:21:42 +00:00
23 lines
620 B
Ruby
23 lines
620 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# Representa la plantilla de un campo en los metadatos del artículo
|
||
|
MetadataTemplate = Struct.new(:site, :document, :name, :label, :type,
|
||
|
:value, :help, :required,
|
||
|
keyword_init: true) do
|
||
|
# El valor por defecto
|
||
|
def default_value
|
||
|
raise NotImplementedError
|
||
|
end
|
||
|
|
||
|
# Valores posibles, busca todos los valores actuales en otros
|
||
|
# artículos del mismo sitio
|
||
|
def values
|
||
|
site.everything_of(name.to_s)
|
||
|
end
|
||
|
|
||
|
# Valor actual o por defecto
|
||
|
def value
|
||
|
super || document.data.dig(name.to_s, default_value)
|
||
|
end
|
||
|
end
|