traer valores por defecto (excepto para boolean)
This commit is contained in:
parent
1878749910
commit
824226aa84
14 changed files with 19 additions and 22 deletions
|
@ -4,7 +4,7 @@
|
|||
class MetadataArray < MetadataTemplate
|
||||
# El valor por defecto es una array vacía
|
||||
def default_value
|
||||
[]
|
||||
super || []
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# requieran texto largo.
|
||||
class MetadataContent < MetadataTemplate
|
||||
def default_value
|
||||
''
|
||||
super || ''
|
||||
end
|
||||
|
||||
def value
|
||||
|
|
|
@ -18,7 +18,7 @@ class MetadataEvent < MetadataTemplate
|
|||
#
|
||||
# @return [Hash]
|
||||
def default_value
|
||||
{}
|
||||
super || {}
|
||||
end
|
||||
|
||||
def to_param
|
||||
|
|
|
@ -6,7 +6,7 @@ require 'filemagic'
|
|||
class MetadataFile < MetadataTemplate
|
||||
# Una ruta vacía a la imagen con una descripción vacía
|
||||
def default_value
|
||||
{ 'path' => nil, 'description' => nil }
|
||||
super || { 'path' => nil, 'description' => nil }
|
||||
end
|
||||
|
||||
def empty?
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Define un campo de coordenadas geográficas
|
||||
class MetadataGeo < MetadataTemplate
|
||||
def default_value
|
||||
{ 'lat' => nil, 'lng' => nil }
|
||||
super || { 'lat' => nil, 'lng' => nil }
|
||||
end
|
||||
|
||||
def empty?
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
# diferencia entre has_many y belongs_to.
|
||||
class MetadataHasAndBelongsToMany < MetadataBelongsTo
|
||||
def default_value
|
||||
[]
|
||||
super || []
|
||||
end
|
||||
|
||||
# Posts a los que pertenece. Memoizamos por value para obtener
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Un campo de idioma
|
||||
class MetadataLang < MetadataTemplate
|
||||
def default_value
|
||||
I18n.locale
|
||||
super || I18n.locale
|
||||
end
|
||||
|
||||
def value
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Los valores de este metadato son artículos en otros idiomas
|
||||
class MetadataLocales < MetadataTemplate
|
||||
def default_value
|
||||
[]
|
||||
super || []
|
||||
end
|
||||
|
||||
# Todos los valores posibles para cada idioma disponible
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
class MetadataNumber < MetadataTemplate
|
||||
# Nada
|
||||
def default_value
|
||||
nil
|
||||
super || nil
|
||||
end
|
||||
|
||||
def save
|
||||
|
|
|
@ -5,7 +5,7 @@ class MetadataOrder < MetadataTemplate
|
|||
# El valor según la posición del post en la relación ordenada por
|
||||
# fecha, a fecha más alta, posición más alta
|
||||
def default_value
|
||||
site.posts(lang: post.lang.value).sort_by(:date).index(post)
|
||||
super || site.posts(lang: lang).sort_by(:date).index(post)
|
||||
end
|
||||
|
||||
def save
|
||||
|
|
|
@ -31,10 +31,6 @@ class MetadataPath < MetadataTemplate
|
|||
document.data['ext'].blank? ? '.markdown' : document.data['ext']
|
||||
end
|
||||
|
||||
def lang
|
||||
post.lang.value
|
||||
end
|
||||
|
||||
def slug
|
||||
post.slug.value
|
||||
end
|
||||
|
|
|
@ -27,11 +27,6 @@ class MetadataRelatedPosts < MetadataArray
|
|||
post&.title&.value || post&.slug&.value
|
||||
end
|
||||
|
||||
# TODO: Traer el idioma actual de otra forma
|
||||
def lang
|
||||
post&.lang&.value || I18n.locale
|
||||
end
|
||||
|
||||
# Encuentra el filtro
|
||||
def filter
|
||||
layout.metadata.dig(name, 'filter')&.to_h&.symbolize_keys || {}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
class MetadataString < MetadataTemplate
|
||||
# Una string vacía
|
||||
def default_value
|
||||
''
|
||||
super || ''
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -21,15 +21,21 @@ MetadataTemplate = Struct.new(:site, :document, :name, :label, :type,
|
|||
!value_was.nil? && value_was != value
|
||||
end
|
||||
|
||||
# Trae el idioma actual del sitio o del panel
|
||||
# @return [String]
|
||||
def lang
|
||||
@lang ||= post&.lang&.value || I18n.locale.to_s
|
||||
end
|
||||
|
||||
# El valor por defecto
|
||||
def default_value
|
||||
raise NotImplementedError
|
||||
layout.metadata.dig(name, 'default', lang)
|
||||
end
|
||||
|
||||
# Valores posibles, busca todos los valores actuales en otros
|
||||
# artículos del mismo sitio
|
||||
def values
|
||||
site.everything_of(name, lang: post&.lang&.value)
|
||||
site.everything_of(name, lang: lang)
|
||||
end
|
||||
|
||||
# Valor actual o por defecto. Al memoizarlo podemos modificarlo
|
||||
|
|
Loading…
Reference in a new issue