Sha256: 7ecdc2c93fbd50af7481a0bc800f88a3f0c6b1b2c47381df050a1b5b61e2722b
Contents?: true
Size: 517 Bytes
Versions: 104
Compression:
Stored size: 517 Bytes
Contents
# frozen_string_literal: true module SmartProperties module Validations class Ancestor include SmartProperties property! :type, accepts: ->(type) { type.is_a?(Class) } def validate(klass) klass.is_a?(Class) && klass < type end def to_proc validator = self ->(klass) { validator.validate(klass) } end def to_s "subclasses of #{type.to_s}" end class << self alias_method :must_be, :new end end end end
Version data entries
104 entries across 104 versions & 2 rubygems