class Lutaml::Model::Type::Integer
def self.cast(value, options = {})
def self.cast(value, options = {}) return nil if value.nil? return 1 if value === true return 0 if value === false value = case value when ::String if value.match?(/^0[0-7]+$/) # Octal value.to_i(8) elsif value.match?(/^-?\d+(\.\d+)?(e-?\d+)?$/i) # Float/exponential Float(value).to_i else begin Integer(value, 10) rescue StandardError nil end end else begin Integer(value) rescue StandardError nil end end Model::Services::Type::Validator::Number.validate!(value, options) value end
def self.serialize(value)
def self.serialize(value) return nil if value.nil? cast(value) end