Sha256: 6f2c9ae7b5c703c32180ad027a74c865d3c6e88fb36e1ce7cf854d38860e87fb
Contents?: true
Size: 436 Bytes
Versions: 9
Compression:
Stored size: 436 Bytes
Contents
module APIClientBase class Validate def self.call(klass, attrs) errors = errors_of(klass, attrs) fail(ArgumentError, errors.to_json) if errors.any? end private def self.errors_of(klass, attrs) schema = schema_of(klass) return [] if schema.nil? schema.(attrs).errors end def self.schema_of(klass) "#{klass.name}Schema".constantize rescue NameError end end end
Version data entries
9 entries across 9 versions & 1 rubygems