dry-rb / dry-rb/dry-validation

Support for array items in rule paths

Open
#607 9 comments 2 reactions 0 assignees View on GitHub
feature help wanted
Dominant language
Ruby
Stars
1.4k
Forks
195
PR merge metrics
No merged PRs in 30d

Description

## Examples

```ruby
require 'dry-validation'

class PropsContract < Dry::Validation::Contract
json do
required(:contacts).value(:array, min_size?: 1).each do
hash do
required(:name).filled(:string)
required(:email).filled(:string)
required(:phone).filled(:string)
end
end
end

rule("contacts[].email").each do
key.failure("email not valid") unless value.include?('@')
end
end

c = PropsContract.new

c.(
contacts: [
{ name: 'Jane', email: 'jane@doe.org', phone: '123' },
{ name: 'John', email: 'oops', phone: '123' }
]).errors.to_h.inspect
# {:email=>{1=>["email not valid"]}}
```

## Resources

Refs #603

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.