module JSON class Schema class MaxDecimalAttribute < Attribute def self.validate(current_schema, data, fragments, validator, options = {}) if data.is_a?(Numeric) s = data.to_s.split(".")[1] if s && s.length > current_schema.schema['maxDecimal'] message = "The property '#{build_fragment(fragments)}' had more decimal places than the allowed #{current_schema.schema['maxDecimal']}" raise ValidationError.new(message, fragments, current_schema) end end end end end end