Sha256: 1940884946a258980f95dc0bd23ba559164e7d61839211f93350719a1524c185
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
# Quick and dirty monkey patch for a performance bug we saw with certain # schema constellations # # The performance issues are that # * `build_fragment` joins the elements in `fragments` even though the # error message it is used in is never used # * the `fragment` array constantly grows module JSON class Schema class EnumAttribute < Attribute def self.validate(current_schema, data, fragments, processor, validator, options = {}) if !current_schema.schema['enum'].include?(data) if options[:record_errors] message = "The property '#{build_fragment(fragments)}' value #{data.inspect} did not match one of the following values:" current_schema.schema['enum'].each {|val| if val.is_a?(NilClass) message += " null," elsif val.is_a?(Array) message += " (array)," elsif val.is_a?(Hash) message += " (object)," else message += " #{val.to_s}," end } message.chop! validation_error(processor, message, fragments, current_schema, self, options[:record_errors]) else raise ValidationError.new("", [], nil, current_schema) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
machinery-tool-1.18.0 | lib/json_schema_monkey_patch.rb |