mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-22 15:56:20 +00:00
no tener que definir to_param en cada Metadata
This commit is contained in:
parent
2f2cc0e3c3
commit
0d703d0d43
9 changed files with 14 additions and 28 deletions
|
@ -7,10 +7,6 @@ class MetadataArray < MetadataTemplate
|
|||
[]
|
||||
end
|
||||
|
||||
def to_param
|
||||
{ name => [] }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sanitize(values)
|
||||
|
|
|
@ -13,11 +13,6 @@ class MetadataBelongsTo < MetadataRelatedPosts
|
|||
''
|
||||
end
|
||||
|
||||
# @see MetadataTemplate
|
||||
def to_param
|
||||
name
|
||||
end
|
||||
|
||||
def validate
|
||||
super
|
||||
|
||||
|
|
|
@ -10,11 +10,9 @@ class MetadataDocumentDate < MetadataTemplate
|
|||
# El valor puede ser un Date, Time o una String en el formato
|
||||
# "yyyy-mm-dd"
|
||||
def value
|
||||
return self[:value] = document.date || default_value if self[:value].nil?
|
||||
return (self[:value] = document.date || default_value) if self[:value].nil?
|
||||
|
||||
if self[:value].is_a? String
|
||||
self[:value] = Date.iso8601(self[:value]).to_time
|
||||
end
|
||||
self[:value] = Date.iso8601(self[:value]).to_time if self[:value].is_a? String
|
||||
|
||||
self[:value]
|
||||
end
|
||||
|
|
|
@ -50,10 +50,6 @@ class MetadataFile < MetadataTemplate
|
|||
true
|
||||
end
|
||||
|
||||
def to_param
|
||||
{ name => %i[description path] }
|
||||
end
|
||||
|
||||
# Almacena el archivo en el sitio y lo devuelve
|
||||
#
|
||||
# @return ActiveStorage::Attachment
|
||||
|
|
|
@ -10,10 +10,6 @@ class MetadataGeo < MetadataTemplate
|
|||
value == default_value
|
||||
end
|
||||
|
||||
def to_param
|
||||
{ name => %i[lat lng] }
|
||||
end
|
||||
|
||||
def save
|
||||
return true if empty?
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ class MetadataLang < MetadataTemplate
|
|||
end
|
||||
|
||||
def value
|
||||
self[:value] || document.collection.label || default_value
|
||||
self[:value] ||= document.collection.label || default_value
|
||||
end
|
||||
|
||||
def values
|
||||
|
|
|
@ -9,6 +9,7 @@ class MetadataLocales < MetadataTemplate
|
|||
# Todos los valores posibles para cada idioma disponible
|
||||
#
|
||||
# TODO: Optimizar?
|
||||
# TODO: Mantener sincronizados
|
||||
#
|
||||
# @return { lang: { title: uuid } }
|
||||
def values
|
||||
|
@ -20,8 +21,4 @@ class MetadataLocales < MetadataTemplate
|
|||
}
|
||||
end.inject(:merge)
|
||||
end
|
||||
|
||||
def to_param
|
||||
{ name => [] }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -33,7 +33,7 @@ class MetadataSlug < MetadataTemplate
|
|||
end
|
||||
|
||||
def value
|
||||
self[:value] || document.data.fetch('slug', default_value)
|
||||
self[:value] ||= document.data.fetch('slug', default_value)
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -53,8 +53,16 @@ MetadataTemplate = Struct.new(:site, :document, :name, :label, :type,
|
|||
errors.empty?
|
||||
end
|
||||
|
||||
# Usa el valor por defecto para generar el formato de StrongParam
|
||||
# necesario.
|
||||
#
|
||||
# @return [Symbol,Hash]
|
||||
def to_param
|
||||
name
|
||||
case default_value
|
||||
when Hash then { name => default_value.keys.map(&:to_sym) }
|
||||
when Array then { name => [] }
|
||||
else name
|
||||
end
|
||||
end
|
||||
|
||||
def to_s
|
||||
|
|
Loading…
Reference in a new issue