Sha256: 18fc8a82adb26fc8fe897c8864f4a94e7d8daa66448414599db2e7d0a5656e12
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
require 'dry/validation' require 'dry/validation/schema' module Locabulary class Schema < Dry::Validation::Schema key(:predicate_name) { |predicate_name| predicate_name.format?(/\A[a-z_]+\Z/) & predicate_name.filled? } key(:values) do |values| values.array? do values.each do |value| value.hash? do value.key(:term_label) { |term_label| term_label.filled? } value.optional(:term_uri) { |term_label| term_label.none? | term_label.str? } value.optional(:deposit_label) { |deposit_label| deposit_label.none? | deposit_label.str? } value.optional(:description) { |description| description.none? | description.str? } value.optional(:grouping) { |grouping| grouping.none? | grouping.str? } value.optional(:affiliation) { |affiliation| affiliation.none? | affiliation.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.2.0 | lib/locabulary/schema.rb |