Sha256: bffd062657db030bb1d8d1cebef322d34d5d4938e921e31590aff00f206b9b41
Contents?: true
Size: 680 Bytes
Versions: 5
Compression:
Stored size: 680 Bytes
Contents
# assumes that @checks is defined as an array of no-arg lambdas, each # lambda raising an error (with useful msg) when check fails module Validatable attr_reader :errors def check_methods; []; end def validatables; []; end def validate @errors = [] check_methods.each do |check_method| begin send(check_method) rescue StandardError => e @errors.push e end end validatables.each do |v| if v.respond_to?(:validate) @errors += v.validate end end return @errors end def valid? self.validate @errors.empty? end def invalid? !self.valid? end end
Version data entries
5 entries across 5 versions & 2 rubygems