sutty/app/models/metadata_boolean.rb

29 lines
801 B
Ruby
Raw Normal View History

2019-08-20 22:11:10 +00:00
# frozen_string_literal: true
# Implementa valores por sí o por no
class MetadataBoolean < MetadataTemplate
def default_value
false
end
# Los checkboxes son especiales porque la especificación de HTML
# indica que no se envían aquellos checkboxes con valores vacíos, con
# lo que nunca sabemos cuándo se los está deshabilitando. Rails
# subsana esto enviando un valor vacío bajo el mismo nombre
# (generalmente '0').
#
# En este caso, queremos priorizar el dato enviado por le usuarie
# antes que el generado internamente.
2019-08-20 22:11:10 +00:00
def value
2020-03-31 20:52:41 +00:00
return false if self[:value] == '0'
return self[:value] unless self[:value].nil?
2020-03-31 20:52:41 +00:00
document.data.fetch(name.to_s, default_value)
2019-08-20 22:11:10 +00:00
end
2020-03-31 20:52:41 +00:00
def save
self[:value] = !%w[0 false].include?(self[:value])
true
end
2019-08-20 22:11:10 +00:00
end