Feature #8343

StringScanner#[] should accept names of named captures

Added by Konstantin Haase 12 months ago. Updated 11 months ago.

[ruby-core:54664]
Status:Closed
Priority:Normal
Assignee:Yui NARUSE
Category:-
Target version:-

Description

Example:

s = StringScanner.new("Fri Dec 12 1975 14:39")
s.scan(/(?<wday>\w+) (?<month>\w+) (?<day>\d+) /)

# this currently works
s[0]                               # -> "Fri Dec 12 "
s[1]                               # -> "Fri"
s[2]                               # -> "Dec"
s[3]                               # -> "12"

# this currently does not work
s[:wday]                           # -> "Fri"
s[:month]                          # -> "Dec"
s[:day]                            # -> "12"

I attached a patch including tests for MRI, I don't know if Rubinius has a different implementation, I guess JRuby has.
I can look into this if the feature gets accepted.

0001-make-StringScanner-accept-names-of-named-captures.patch Magnifier (3.44 KB) Konstantin Haase, 04/28/2013 11:46 PM

Associated revisions

Revision 40881
Added by Yui NARUSE 11 months ago

  • ext/strscan/strscan.c (strscan_aref): support named captures. patched by Konstantin Haase [Feature #8343]

History

#1 Updated by Konstantin Haase 12 months ago

On a related note: should the patch be submitted in a second issue on the ruby-trunk project?

#2 Updated by Yui NARUSE 12 months ago

  • Status changed from Open to Assigned
  • Assignee set to Yui NARUSE

rkh (Konstantin Haase) wrote:

On a related note: should the patch be submitted in a second issue on the ruby-trunk project?

Here is also correct place now.
I'll merge this if there are no objection.

#3 Updated by Yui NARUSE 11 months ago

  • Status changed from Assigned to Closed
  • Project changed from CommonRuby to ruby-trunk

Merged at r40881!

Also available in: Atom PDF