estandarizar la forma de obtener el valor de los documentos
teníamos dos métodos que hacían lo mismo y generaban conflictos al obtener el valor por defecto de los arrays cuando no eran arrays.
This commit is contained in:
parent
78a3cae077
commit
c3a8b2401c
5 changed files with 18 additions and 15 deletions
|
@ -7,7 +7,8 @@ class MetadataDocumentDate < MetadataTemplate
|
|||
Date.today.to_time
|
||||
end
|
||||
|
||||
def value_from_document
|
||||
# @return [Time]
|
||||
def document_value
|
||||
return nil if post.new?
|
||||
|
||||
document.date
|
||||
|
@ -45,10 +46,10 @@ class MetadataDocumentDate < MetadataTemplate
|
|||
begin
|
||||
Date.iso8601(self[:value]).to_time
|
||||
rescue Date::Error
|
||||
value_from_document || default_value
|
||||
document_value || default_value
|
||||
end
|
||||
else
|
||||
self[:value] || value_from_document || default_value
|
||||
self[:value] || document_value || default_value
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -6,12 +6,13 @@ class MetadataLang < MetadataTemplate
|
|||
super || I18n.locale
|
||||
end
|
||||
|
||||
def value_from_document
|
||||
# @return [Symbol]
|
||||
def document_value
|
||||
document.collection.label.to_sym
|
||||
end
|
||||
|
||||
def value
|
||||
self[:value] ||= value_from_document || default_value
|
||||
self[:value] ||= document_value || default_value
|
||||
end
|
||||
|
||||
def values
|
||||
|
|
|
@ -9,14 +9,15 @@ class MetadataMarkdownContent < MetadataText
|
|||
end
|
||||
|
||||
def value
|
||||
self[:value] || value_from_document || default_value
|
||||
self[:value] || document_value || default_value
|
||||
end
|
||||
|
||||
def front_matter?
|
||||
false
|
||||
end
|
||||
|
||||
def value_from_document
|
||||
# @return [String]
|
||||
def document_value
|
||||
document.content
|
||||
end
|
||||
|
||||
|
|
|
@ -3,12 +3,16 @@
|
|||
# Este campo representa el archivo donde se almacenan los datos
|
||||
class MetadataPath < MetadataTemplate
|
||||
# :label en este caso es el idioma/colección
|
||||
#
|
||||
# @return [String]
|
||||
def default_value
|
||||
File.join(site.path, "_#{lang}", "#{date}-#{slug}#{ext}")
|
||||
end
|
||||
|
||||
# El valor no vuelve desde el documento
|
||||
def value_from_document
|
||||
# La ruta del archivo según Jekyll
|
||||
#
|
||||
# @return [String]
|
||||
def document_value
|
||||
document.path
|
||||
end
|
||||
|
||||
|
|
|
@ -49,11 +49,7 @@ MetadataTemplate = Struct.new(:site, :document, :name, :label, :type,
|
|||
def value_was
|
||||
return @value_was if instance_variable_defined? '@value_was'
|
||||
|
||||
@value_was = value_from_document
|
||||
end
|
||||
|
||||
def value_from_document
|
||||
@value_from_document ||= document.data[name.to_s]
|
||||
@value_was = document_value
|
||||
end
|
||||
|
||||
def changed?
|
||||
|
@ -85,7 +81,7 @@ MetadataTemplate = Struct.new(:site, :document, :name, :label, :type,
|
|||
# Valor actual o por defecto. Al memoizarlo podemos modificarlo
|
||||
# usando otros métodos que el de asignación.
|
||||
def value
|
||||
self[:value] ||= if (data = value_from_document).present?
|
||||
self[:value] ||= if (data = document_value).present?
|
||||
private? ? decrypt(data) : data
|
||||
else
|
||||
default_value
|
||||
|
|
Loading…
Reference in a new issue