Sha256: b023dd43e99fa4c59bf7c2425917760c9e4a99649eac4eebcc7d73941b52f1e4
Contents?: true
Size: 999 Bytes
Versions: 1
Compression:
Stored size: 999 Bytes
Contents
require 'dry/validation' require 'dry/validation/schema' module Locabulary class Schema < Dry::Validation::Schema key(:values) do |values| values.array? do values.each do |value| value.hash? do value.key(:predicate_name) { |predicate_name| predicate_name.format?(/\A[a-z_]+\Z/) & predicate_name.filled? } value.key(:term_label) { |term_label| term_label.filled? } value.optional(:term_uri) { |term_label| term_label.none? | term_label.str? } value.optional(:default_presentation_sequence) do |default_presentation_sequence| default_presentation_sequence.none? | default_presentation_sequence.int? end value.key(:activated_on) { |activated_on| activated_on.format?(/\A\d{4}-\d{2}-\d{2}\Z/) } value.optional(:deactivated_on) { |deactivated_on| deactivated_on.none? | deactivated_on.format?(/\A\d{4}-\d{2}-\d{2}\Z/) } end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
locabulary-0.1.8 | lib/locabulary/schema.rb |