Sha256: 3a9ea3d7df6fe6f17587ef7159dcbfa51e9b1b6e5f48be8780ada8145ac62278
Contents?: true
Size: 827 Bytes
Versions: 1
Compression:
Stored size: 827 Bytes
Contents
# frozen_string_literal: true module Kind class Any FilledList = ->(val) {(val.is_a?(::Array) || val.is_a?(::Set)) && !val.empty?} singleton_class.send(:alias_method, :[], :new) attr_reader :values def initialize(*args) array = args.size == 1 ? args[0] : args @values = Kind.of(FilledList, array, expected: 'filled array or set') end def ===(value) @values.include?(value) end def [](value, label: nil) STRICT.object_is_a(self, value, label) end def |(another_kind) UnionType[self] | another_kind end def name str = @values.inspect if @values.is_a?(::Set) str.sub!(/\A#<Set: /, '') str.chomp!('>') end "Kind::Any#{str}" end alias inspect name private_constant :FilledList end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kind-5.10.0 | lib/kind/any.rb |