class RBS::UnitTest::WithAliases::WithEnum
Public Class Methods
(_Each[T] enum) → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/unit_test/with_aliases.rb, line 11 def initialize(enum) = @enum = enum
Public Instance Methods
[S] (*S args) { (T | S) → void } → void
[S] (*S args) → WithEnum[T | S]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/unit_test/with_aliases.rb, line 27 def and(*args, &block) return WithEnum.new to_enum(__method__ || raise, *args) unless block each(&block) args.each do |arg| if WithEnum === arg # use `===` as `arg` might not have `.is_a?` on it arg.each(&block) else block.call(_ = arg) end end end
Yield objects in args in addition to original enum elements
e = WithEnum.new([1, 2]) e.and(3) do |i| pp i # => 1, 2, and 3 end
() { (T?) → void } → void
() → WithEnum[T?]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/unit_test/with_aliases.rb, line 15 def and_nil(&block) self.and(nil, &_ = block) end
Yield nil in addition to original enum elements
e = WithEnum.new([1, 2]) e.and_nil do |i| pp i # => 1, 2, and nil end
(*T cases) { (T) → void } → void
(*T cases) → WithEnum[T]
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/unit_test/with_aliases.rb, line 19 def but(*cases, &block) return WithEnum.new to_enum(__method__ || raise, *cases) unless block each do |arg| yield arg unless cases.any? { (_ = _1) === arg } end end
Skip yielding objects in cases
e = WithEnum.new([1, 2, 3]) e.but(2) do |i| pp i # => 1 and 3 end
() { (T) → void } → void
Source
# File vendor/bundle/ruby/4.0.0/gems/rbs-4.0.3/lib/rbs/unit_test/with_aliases.rb, line 13 def each(&block) = @enum.each(&block)