Sha256: 7d4d31e4d7eea738acaccab4414dc7508843d7fca942864669e52fcd7955ca16
Contents?: true
Size: 1.51 KB
Versions: 2
Compression:
Stored size: 1.51 KB
Contents
module Examples class CustomErrors include JSON::SchemaBuilder def required_error lambda do |entities, error| if error[:failed_attribute] == "Required" required = entities.map(&:required).compact.inject(:+).uniq error[:message] = "#{error[:fragment]} requires properties #{required.map(&:to_s).inspect}" end end end def type_error(message) lambda do |entities, error| if error[:failed_attribute].start_with?("Type") error[:message] = message end end end def example object error: required_error do object :user, required: true, error: type_error("Custom object error") object :settings, error: required_error do string :name, required: true, error: type_error("Custom name error") end end end def example2 object do object :settings, error: required_error do string :other, required: true, error: type_error("Other error") end end end def example3 object do object :settings, required: true, error: "Settings is required" do string :name, required: true, error: "Name is required" string :other, required: true, error: "Other is required" end end end def any_of object do entity :user do any_of [ object(:ignored) { object(:settings) { string :name, error: "Nested" } }, null ] end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
json-schema_builder-0.8.2 | spec/support/examples/custom_errors.rb |
json-schema_builder-0.8.1 | spec/support/examples/custom_errors.rb |