Sha256: b9d6b9e3e743f37d431dde63df530b31a05d35b0a465754159cb0123a8b39abb
Contents?: true
Size: 1.18 KB
Versions: 4
Compression:
Stored size: 1.18 KB
Contents
module BMC::ActiveModelTypeCast module Decimal def cast_value(value) if value.is_a?(String) super(value.tr(",", ".").gsub(/[^-0-9.]/, "")) else super(value) end end end module Date # rubocop:disable Style/RegexpLiteral SANITIZABLE_FORMATS = [ /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/, /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/, ] # rubocop:enable Style/RegexpLiteral def cast_value(value) if sanitizable?(value) super(sanitize(value)) else super(value) end end private def sanitize(value) value.delete(" ") end def sanitizable?(value) return false unless value.is_a?(String) sanitized = sanitize(value) SANITIZABLE_FORMATS.any? { |r| r =~ sanitized } end end module Boolean def cast_value(value) value = value.strip if value.is_a?(String) super(value) end end end ActiveModel::Type::Date.prepend(BMC::ActiveModelTypeCast::Date) ActiveModel::Type::Boolean.prepend(BMC::ActiveModelTypeCast::Boolean) ActiveModel::Type::Decimal.prepend(BMC::ActiveModelTypeCast::Decimal) ActiveModel::Type::Float.prepend(BMC::ActiveModelTypeCast::Decimal)
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
bmc-1.6.1 | lib/bmc/active_model_type_cast.rb |
bmc-1.6.0 | lib/bmc/active_model_type_cast.rb |
bmc-1.5.1 | lib/bmc/active_model_type_cast.rb |
bmc-1.5.0 | lib/bmc/active_model_type_cast.rb |