[#121215] [Ruby master Bug#21166] Fiber Scheduler is unable to be interrupted by `IO#close`. — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

Issue #21166 has been reported by ioquatix (Samuel Williams).

13 messages 2025/03/02

[#121222] [Ruby master Bug#21167] Visual Studio 2022 17.13.x couldn't build ruby.exe — "hsbt (Hiroshi SHIBATA) via ruby-core" <ruby-core@...>

Issue #21167 has been reported by hsbt (Hiroshi SHIBATA).

8 messages 2025/03/03

[#121234] [Ruby master Bug#21168] Prism doesn't require argument parentheses (in some cases) when a block is present but parse.y does — "Earlopain (Earlopain _) via ruby-core" <ruby-core@...>

Issue #21168 has been reported by Earlopain (Earlopain _).

8 messages 2025/03/04

[#121389] [Ruby Bug#21187] Strings concatenated with `\` getting frozen with literal hashes (PRISM only) — LocoDelAssembly via ruby-core <ruby-core@...>

Issue #21187 has been reported by LocoDelAssembly (Hern=E1n Pereira).

12 messages 2025/03/17

[#121413] [Ruby Bug#21193] Inherited callback returns `nil` for `Object.const_source_location` — "eileencodes (Eileen Uchitelle) via ruby-core" <ruby-core@...>

Issue #21193 has been reported by eileencodes (Eileen Uchitelle).

15 messages 2025/03/20

[#121451] [Ruby Bug#21201] Performance regression when defining methods inside `refine` blocks — "alpaca-tc (Hiroyuki Ishii) via ruby-core" <ruby-core@...>

Issue #21201 has been reported by alpaca-tc (Hiroyuki Ishii).

8 messages 2025/03/27

[ruby-core:121395] [Ruby Feature#21190] Proposal for the Deconstruct Method in the MatchData Class

From: "jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>
Date: 2025-03-18 05:32:15 UTC
List: ruby-core #121395
Issue #21190 has been updated by jeremyevans0 (Jeremy Evans).


You can implement this more easily using named captures:

```ruby
/(?<country_code>\d{2})(?<area_code>\d{2})(?<number>\d{9})/ =3D~ "558698765=
4321"
country_code # =3D> "55"
area_code    # =3D> "86"
number       # =3D> "987654321"
```

I think proper use of named captures should handle most cases where you wou=
ld want to use the proposed `MatchData#deconstruct`.  The remaining cases w=
ould be when you are passing MatchData as an argument to or result of a met=
hod call.

If we did want to implement this, it's questionable to me whether `MatchDat=
a#deconstruct` should operate like `MatchData#to_a` or `MatchData#captures`=
 (your example implies `captures` would be a more useful behavior for that =
use case). =20

----------------------------------------
Feature #21190: Proposal for the Deconstruct Method in the MatchData Class
https://bugs.ruby-lang.org/issues/21190#change-112365

* Author: aristotelesbr (Arist=F3teles Costa)
* Status: Open
----------------------------------------
## Context:

The MatchData class currently lacks the deconstruct method, which is necess=
ary for extracting values from a string using pattern matching in Ruby.

## Current Extraction Method

Currently, extraction can be done as follows:


```rb
result =3D /(\d{2})(\d{2})(\d{9})/.match("5586987654321")

puts result[1] # =3D> "55"
puts result[2] # =3D> "86"
puts result[3] # =3D> "987654321"

```


## Proposed Solution:

Implement the deconstruct method in the MatchData class to allow conversion=
 of the MatchData object into an array, enabling deconstruction of its comp=
onents.

```rb
class MatchData
  def deconstruct
    self.to_a
  end
end

result =3D /(\d{2})(\d{2})(\d{9})/.match("5586987654321")
result in [_ , country_code, area_code, number]

puts country_code  # =3D> "55"
puts area_code     # =3D> "86"
puts number        # =3D> "987654321"
```



--=20
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- [email protected]
 To unsubscribe send an email to [email protected]
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.rub=
y-lang.org/


In This Thread