A block is part of the Delegator's contract. Ruby 3.4 issues a warning if a block is passed but unused. This commit fixes the warning by adding a block to the argument list. https://github.com/ruby/weakref/commit/9495ec9191decuplet (Nikita Shilnikov)
I stumbled upon this during the upgrade to 3.4. Here's the minimal repro: ```ruby $VERBOSE = true def foo(*, &block) = block def bar(buz, ...) = foo(buz, ...) bar(:test) {} ``` It gives ``` ruby reproduce.rb reproduce.rb:...decuplet (Nikita Shilnikov)
> I'm confused by this code: Actually, I'm too! The goal of this request doesn't go beyond having support for ```ruby case [1, 2] in [1, a] | [a, 3] then a end ``` The `=> a` is probably a leftover, I don't recall the reason...decuplet (Nikita Shilnikov)
It was there since 1.9 as far as I can see https://github.com/ruby/ruby/commit/a3e1b1ce7ed7e7ffac23015fc2fde56511b30681#diff-2672918174f926386106967d117f11da8aa1905772dcf48fce53694386e4a666R658-R668decuplet (Nikita Shilnikov)
Didn't have time to read it fully but you can escape spaces: ``` 2.7.1 :001 > %w(foo\ bar baz) => ["foo bar", "baz"] ``` Another option ```ruby options = <<~EOF.lines.map(&:strip) choice 1 choice 2 choice 3 choice 4 ...decuplet (Nikita Shilnikov)
Dan0042 (Daniel DeLorme) wrote in #note-1: > Or-patterns _are_ supported, just not with variable assignment. I agree with the request but the title of the ticket is a bit misleading. Yeah, thanks, I updated the title. Dan0042 (D...decuplet (Nikita Shilnikov)
Given pattern matching is officially supported in Ruby 3, I have an idea about making it more flexible. Currently, this piece of code produces a syntax error ```ruby case [1, 2] in [1, a] | [a, 3] => a then a end # duplicated vari...decuplet (Nikita Shilnikov)