solnic on master
Cast identifier to String durin… Merge pull request #169 from ad… (compare)
schema = MySchema.new
and schema.call(params)
{:barcode_only=>[["Can only enter data into barcode OR job/sample fields, not both"], "123"]}
rule(:barcode_only) do
rule(:barcode) ^ not(rule(:job_number) | rule(:sample_number))
end
not
true ^ true
=> false
true ^ false
=> true
class BarcodeSchema < Dry::Validation::Schema::Form
key(:barcode) do |barcode|
barcode.none? | barcode.filled?
end
key(:job_number) do |job_number|
job_number.none? | job_number.int?
end
key(:sample_number) do |sample_number|
sample_number.none? | sample_number.int?
end
rule(:barcode_only) do
rule(:barcode).filled? ^ (rule(:job_number).int? | rule(:sample_number).int?)
end
end
rule(:barcode).filled? & (rule(:job_number).none? & rule(:sample_number).none?)
xor
:joy: