class Lutaml::Model::Type::Decimal
def self.cast(value)
def self.cast(value) return nil if value.nil? check_dependencies!(value) case value when BigDecimal # If already a BigDecimal, return as-is value else # Convert to string first to handle various input types BigDecimal(value.to_s) end rescue ArgumentError nil end
def self.check_dependencies!(value)
def self.check_dependencies!(value) unless defined?(BigDecimal) raise TypeNotEnabledError.new("Decimal", value) end end
def self.from_xml(value)
def self.from_xml(value) cast(value.text) end
def self.serialize(value)
def self.serialize(value) return nil if value.nil? check_dependencies!(value) value = cast(value) value.to_s("F") # Use fixed-point notation to match test expectations end
def to_yaml
def to_yaml value&.to_s("F") end