[#46105] [ruby-trunk - Feature #6687][Open] Enumerable#with — "merborne (kyo endo)" <redmine@...>

14 messages 2012/07/02

[#46133] [ruby-trunk - Feature #6688][Open] Object#replace — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>

24 messages 2012/07/03

[#46160] [ruby-trunk - Feature #6693][Open] Don't warn for unused variables starting with _ — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

15 messages 2012/07/04

[#46200] [ruby-trunk - Bug #6702][Open] Date should be either required or not — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

14 messages 2012/07/05

[#46296] [ruby-trunk - Feature #6717][Open] Method like #instance_eval that returns self (like #tap) — "alexeymuranov (Alexey Muranov)" <redmine@...>

10 messages 2012/07/10

[#46320] [ruby-trunk - Feature #6721][Open] Object#yield_self — "alexeymuranov (Alexey Muranov)" <redmine@...>

25 messages 2012/07/11

[#46339] [ruby-trunk - Bug #6724][Open] waaaaaaant! ( — "zenspider (Ryan Davis)" <redmine@...>

11 messages 2012/07/11

[#46377] [ruby-trunk - Feature #6727][Open] Add Array#rest (with implementation) — "duckinator (Nick Markwell)" <nick@...>

25 messages 2012/07/13

[#46492] [ruby-trunk - Feature #6737][Open] Add Hash#read and alias as #[]. — "trans (Thomas Sawyer)" <transfire@...>

12 messages 2012/07/15

[#46500] [ruby-trunk - Feature #6739][Open] One-line rescue statement should support specifying an exception class — Quintus (Marvin Gülker) <sutniuq@...>

22 messages 2012/07/15

[#46562] [ruby-trunk - Feature #6758][Open] Object#sequence — "merborne (kyo endo)" <redmine@...>

19 messages 2012/07/20

[#46574] [ruby-trunk - Feature #6762][Open] Control interrupt timing — "ko1 (Koichi Sasada)" <redmine@...>

39 messages 2012/07/20

[#46641] [ruby-trunk - Bug #6780][Open] cannot compile zlib module, when cross-compiling. — "jinleileiking (lei king)" <jinleileiking@...>

14 messages 2012/07/23

[#46659] [ruby-trunk - Bug #6783][Open] Infinite loop in inspect, not overriding inspect, to_s, and no known circular references. Stepping into inspect in debugger locks it up with 100% CPU. — "garysweaver (Gary Weaver)" <garysweaver@...>

8 messages 2012/07/23

[#46792] [ruby-trunk - Bug #6799][Open] Digest::*.hexdigest returns an ASCII-8BIT String — "Eregon (Benoit Daloze)" <redmine@...>

11 messages 2012/07/26

[#46799] [ruby-trunk - Feature #6801][Open] String#~ for a here document — "merborne (kyo endo)" <redmine@...>

12 messages 2012/07/27

[#46829] [ruby-trunk - Feature #6806][Open] Support functional programming: forbid instance/class variables for ModuleName::method_name, allow for ModuleName.method_name — "alexeymuranov (Alexey Muranov)" <redmine@...>

7 messages 2012/07/28

[#46832] [ruby-trunk - Bug #6807][Open] Can't compile ruby without ruby — "devcurmudgeon (Paul Sherwood)" <storitel@...>

13 messages 2012/07/28

[#46834] [ruby-trunk - Feature #6808][Open] Implicit index for enumerations — "trans (Thomas Sawyer)" <transfire@...>

15 messages 2012/07/28

[#46838] [ruby-trunk - Bug #6810][Open] `module A::B; end` is not equivalent to `module A; module B; end; end` with respect to constant lookup (scope) — "alexeymuranov (Alexey Muranov)" <redmine@...>

17 messages 2012/07/28

[#46896] (Half-baked DRAFT) new `require' framework — SASADA Koichi <ko1@...>

Hi,

22 messages 2012/07/31

[ruby-core:46640] [ruby-trunk - Feature #6775][Rejected] Regexp match() for Enumerables

From: "nobu (Nobuyoshi Nakada)" <nobu@...>
Date: 2012-07-23 08:32:45 UTC
List: ruby-core #46640
Issue #6775 has been updated by nobu (Nobuyoshi Nakada).

Description updated
Status changed from Feedback to Rejected

Note that Enumerable#grep can take a block.

  $ ruby -e 'p STDIN.grep(/^\w+$/) {$~}'
  ddd
  fef x
  aaa
  ^D
  [#<MatchData "ddd">, #<MatchData "aaa">]


----------------------------------------
Feature #6775: Regexp match() for Enumerables
https://bugs.ruby-lang.org/issues/6775#change-28303

Author: eike.rb (Eike Dierks)
Status: Rejected
Priority: Low
Assignee: 
Category: core
Target version: 2.0.0


=begin
= Abstract

(({Regexp.match()})) currently works on strings only.
I'd like to suggest to extend that to (({Enumerable}))s,
possibly giving it a different name like (({match_array()}))

I am aware of the (({grep})) method in (({Enumerable})).
But the (({grep})) method does return the matching elements,
while I'm looking for an method to return the ((*match result*)) as applied to the elements.

= Description

I'm actually looking for a canonical way to solve a frequent problem in file parsing.

Let's assume I have a file read into an array of lines.
I now want to select specific lines from that file
and at the very same time extract fields from these lines.

Obviously applying a regexp can do both of these tasks at the very same time.
But I did not yet find a primitive in the ruby1.9 to do this in one strike.

I came up with this snippet:
  class Regexp
      # match all items in array an return only the matching ones
      def match_array(ary)
          ary.map{|item| self.match(item)}
          .select{|x|x!=nil}
      end
  end


One of the remarkable things is,
that selecting non nil items is included,
which makes some sense when matching items form an enumerable.

By not having nil items in the result of that operation,
aka by only having matching items in the result,
we can easily work with the results,
aka accessing the matches.


I'm not really sure if this should go into (({Regexp})) or (({Enumerable})).
=end



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next