2019-08-08 18:28:23 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2019-08-07 21:35:37 +00:00
|
|
|
# Maneja la fecha del document
|
|
|
|
class MetadataDocumentDate < MetadataTemplate
|
|
|
|
# La fecha por defecto es ahora!
|
|
|
|
def default_value
|
|
|
|
Date.today.to_time
|
|
|
|
end
|
|
|
|
|
2021-02-17 21:40:07 +00:00
|
|
|
def value_from_document
|
|
|
|
document.date
|
|
|
|
end
|
|
|
|
|
2021-05-06 15:33:28 +00:00
|
|
|
def indexable?
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
2020-02-12 21:24:54 +00:00
|
|
|
# El valor puede ser un Date, Time o una String en el formato
|
|
|
|
# "yyyy-mm-dd"
|
2019-08-07 21:35:37 +00:00
|
|
|
def value
|
2021-02-17 21:40:07 +00:00
|
|
|
return (self[:value] = value_from_document || default_value) if self[:value].nil?
|
2019-08-13 23:33:57 +00:00
|
|
|
|
2020-07-21 22:34:15 +00:00
|
|
|
self[:value] = Date.iso8601(self[:value]).to_time if self[:value].is_a? String
|
2020-05-11 21:55:30 +00:00
|
|
|
|
|
|
|
self[:value]
|
2019-08-13 23:33:57 +00:00
|
|
|
end
|
2019-08-07 21:35:37 +00:00
|
|
|
end
|