timriley on rich-component-dirs-config
Add component_dirs setting Rem… Scan component file for magic c… Make load_component easier to u… (compare)
timriley on rich-component-dirs-config
Fix wording Add Rubocop rule Clarify names Fixup naming and 4 more (compare)
flash-gordon on master
Add more predicates to mapping (compare)
timriley on rich-component-dirs-config
Use base Dry::Container missing… (compare)
timriley on rich-component-dirs-config
Make load_component easier to u… (compare)
dry-bot on master
[devtools] sync (compare)
flash-gordon on master
Make predicate inference truly … Update changelog.yml (compare)
flash-gordon on custom-builder-methods
Support for custom builder meth… (compare)
class BarcodeSchema < Dry::Validation::Schema::Form
key(:barcode, &:filled?)
key(:job_number) { |v| v.none? | v.int? }
key(:sample_number) { |v| v.none? | v.int? }
rule(:barcode_only) do
rule(:barcode) ^ (rule(:job_number) | rule(:sample_number))
end
def self.messages
Dry::Validation::Messages.default.merge(
en: { errors: {
barcode_only: 'Can only enter data into barcode OR job/sample fields, not both'
}}
)
end
end
schema = MySchema.new
and schema.call(params)
{:barcode_only=>[["Can only enter data into barcode OR job/sample fields, not both"], "123"]}