correct the code in some of the examples
This commit is contained in:
parent
2b04a5d3d4
commit
7fb64cc14a
|
@ -2,16 +2,18 @@
|
|||
|
||||
require "dry-validation"
|
||||
|
||||
schema = Dry::Validation.Schema do
|
||||
required(:email).filled
|
||||
contract = Class.new(Dry::Validation::Contract) do
|
||||
schema do
|
||||
required(:email).filled
|
||||
|
||||
required(:age).filled(:int?, gt?: 18)
|
||||
end
|
||||
required(:age).filled(:int?, gt?: 18)
|
||||
end
|
||||
end.new
|
||||
|
||||
errors = schema.call(email: "jane@doe.org", age: 19).messages
|
||||
errors = contract.call(email: "jane@doe.org", age: 19)
|
||||
|
||||
puts errors.inspect
|
||||
|
||||
errors = schema.call(email: nil, age: 19).messages
|
||||
errors = contract.call(email: nil, age: 19)
|
||||
|
||||
puts errors.inspect
|
||||
|
|
|
@ -3,14 +3,16 @@
|
|||
require "byebug"
|
||||
require "dry-validation"
|
||||
|
||||
schema = Dry::Validation.Schema do
|
||||
key(:phone_numbers).each(:str?)
|
||||
end
|
||||
contract = Class.new(Dry::Validation::Contract) do
|
||||
schema do
|
||||
required(:phone_numbers).value(:array).each(:string)
|
||||
end
|
||||
end.new
|
||||
|
||||
errors = schema.call(phone_numbers: "").messages
|
||||
errors = contract.call(phone_numbers: "")
|
||||
|
||||
puts errors.inspect
|
||||
|
||||
errors = schema.call(phone_numbers: ["123456789", 123_456_789]).messages
|
||||
errors = contract.call(phone_numbers: ["123456789", 123_456_789])
|
||||
|
||||
puts errors.inspect
|
||||
|
|
|
@ -2,29 +2,34 @@
|
|||
|
||||
require "dry-validation"
|
||||
|
||||
schema = Dry::Validation.Schema do
|
||||
configure do
|
||||
def self.messages
|
||||
super.merge(en: {
|
||||
|
||||
contract = Class.new(Dry::Validation::Contract) do
|
||||
schema do
|
||||
required(:email).filled
|
||||
end
|
||||
|
||||
def self.messages
|
||||
super.merge(en: {
|
||||
dry_validation: {
|
||||
errors: {
|
||||
john_email?: "%{value} is not a john email",
|
||||
example_email?: "%{value} is not a example email"
|
||||
rules: {
|
||||
email: {
|
||||
john?: "%{value} is not a john email",
|
||||
example?: "%{value} is not an example email"
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
end
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
required(:email).filled
|
||||
rule(:email) do
|
||||
key.failure(:example?, value: value) unless value.end_with?("@example.com")
|
||||
|
||||
validate(example_email?: :email) do |value|
|
||||
value.end_with?("@example.com")
|
||||
key.failure(:john?, value: value) unless value.start_with?("john")
|
||||
end
|
||||
end.new
|
||||
|
||||
validate(john_email?: :email) do |value|
|
||||
value.start_with?("john")
|
||||
end
|
||||
end
|
||||
result = contract.call(email: "jane@doe.org")
|
||||
|
||||
errors = schema.call(email: "jane@doe.org").messages
|
||||
|
||||
puts errors.inspect
|
||||
puts result.inspect
|
||||
|
|
|
@ -2,23 +2,25 @@
|
|||
|
||||
require "dry-validation"
|
||||
|
||||
schema = Dry::Validation.Schema do
|
||||
required(:address).schema do
|
||||
required(:city).filled(min_size?: 3)
|
||||
contract = Class.new(Dry::Validation::Contract) do
|
||||
schema do
|
||||
required(:address).schema do
|
||||
required(:city).filled(min_size?: 3)
|
||||
|
||||
required(:street).filled
|
||||
required(:street).filled
|
||||
|
||||
required(:country).schema do
|
||||
required(:name).filled
|
||||
required(:code).filled
|
||||
required(:country).schema do
|
||||
required(:name).filled
|
||||
required(:code).filled
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end.new
|
||||
|
||||
errors = schema.call({}).messages
|
||||
errors = contract.call({})
|
||||
|
||||
puts errors.inspect
|
||||
|
||||
errors = schema.call(address: {city: "NYC"}).messages
|
||||
errors = contract.call(address: {city: "NYC"})
|
||||
|
||||
puts errors.inspect
|
||||
|
|
Loading…
Reference in New Issue