module Kinda::ClassMethods
Public Instance Methods
[](*klasses)
click to toggle source
# File lib/kinda.rb, line 21 def [](*klasses) klasses = klasses.flatten.map { |k| convert_custom_klass(k) }.flatten unless klasses.all? { |k| k.kind_of?(Class) } raise ArgumentError.new("expected Class but given #{klasses.map(&:class).inspect}") end lambda do |obj| if klasses.none? { |k| obj.kind_of?(k) } raise ConstraintError.new("expected #{klasses.inspect} but given #{obj.class}") end obj end end
Private Instance Methods
convert_custom_klass(klass)
click to toggle source
# File lib/kinda.rb, line 39 def convert_custom_klass(klass) return klass unless klass < Kinda::Types::Custom case klass.name when 'Kinda::Types::Nil' NilClass when 'Kinda::Types::True' TrueClass when 'Kinda::Types::False' FalseClass when 'Kinda::Types::Bool' [TrueClass, FalseClass] else klass end end