Project

General

Profile

Actions

Feature #19591

closed

Add symbolize_names to MatchData#named_captures

Added by palkan (Vladimir Dementyev) over 1 year ago. Updated about 1 year ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:113191]

Description

This feature is a follow-up for MatchData#deconstruct_keys (see https://github.com/ruby/ruby/pull/6216).

Example:

m = /(?<a>.)(?<a>.)/.match("01")  # => #<MatchData "01" a:"0" a:"1">
m.named_captures #=> {"a" => "1"}
m.named_captures(symbolize_names: true) #=> {:a => "1"}

The underlying (C) functionality has been already implemented. The proposal is to expose it via the optional symbolize_keys: true | false keyword argument.

PR is attached: https://github.com/ruby/ruby/pull/6952

Updated by mame (Yusuke Endoh) about 1 year ago

Discussed at the dev meeting. @matz (Yukihiro Matsumoto) accepted this, but he also said that the keyword should be symbolize_names, not symbolize_keys, following JSON.parse(..., symbolize_names: true).

Actions #3

Updated by palkan (Vladimir Dementyev) about 1 year ago

  • Subject changed from Add symbolize_keys to MatchData#named_captures to Add symbolize_names to MatchData#named_captures
Actions #4

Updated by palkan (Vladimir Dementyev) about 1 year ago

  • Description updated (diff)

Updated by palkan (Vladimir Dementyev) about 1 year ago

mame (Yusuke Endoh) wrote in #note-2:

... the keyword should be symbolize_names, not symbolize_keys, following JSON.parse(..., symbolize_names: true).

Updated in the PR

Updated by ioquatix (Samuel Williams) about 1 year ago

  • Status changed from Open to Closed

Merged, thanks for your contribution to Ruby.

Actions

Also available in: Atom PDF

Like0
Like0Like1Like0Like0Like0Like0