# frozen_string_literal: true # Maneja la fecha del document class MetadataDocumentDate < MetadataTemplate # La fecha por defecto es ahora! def default_value Date.today.to_time end def value_from_document document.date end # El valor puede ser un Date, Time o una String en el formato # "yyyy-mm-dd" # # XXX: Date.iso8601 acepta fechas en el futuro lejano, como 20000, # pero Jekyll las limita a cuatro cifras, así que vamos a mantener # eso. # # @see {https://github.com/jekyll/jekyll/blob/master/lib/jekyll/document.rb#L15} def value self[:value] = case self[:value] when String begin raise Date::Error unless /\A\d{2,4}-\d{1,2}-\d{1,2}\z/ ~= self[:value] Date.iso8601(self[:value]).to_time rescue Date::Error value_from_document || default_value end else value_from_document || default_value end end end