[#85349] [Ruby trunk Bug#14334] Segmentation fault after running rspec (ruby/2.5.0/erb.rb:885 / simplecov/source_file.rb:85) — pragtob@...
Issue #14334 has been updated by PragTob (Tobias Pfeiffer).
3 messages
2018/02/02
[#85358] Re: [ruby-cvs:69220] nobu:r62039 (trunk): compile.c: unnecessary freezing — Eric Wong <normalperson@...>
nobu@ruby-lang.org wrote:
5 messages
2018/02/03
[#85612] Why require autoconf 2.67+ — leam hall <leamhall@...>
Please pardon the intrusion; I am new to Ruby and like to pull the
6 messages
2018/02/17
[#85634] [Ruby trunk Bug#14494] [PATCH] tool/m4/ruby_replace_type.m4 use AC_CHECK_TYPES for HAVE_* macros — normalperson@...
Issue #14494 has been reported by normalperson (Eric Wong).
3 messages
2018/02/19
[#85674] [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid — matz@...
Issue #13618 has been updated by matz (Yukihiro Matsumoto).
5 messages
2018/02/20
[#85686] Re: [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
— Eric Wong <normalperson@...>
2018/02/20
matz@ruby-lang.org wrote:
[#85704] Re: [Ruby trunk Feature#13618] [PATCH] auto fiber schedule for rb_wait_for_single_fd and rb_waitpid
— Koichi Sasada <ko1@...>
2018/02/21
On 2018/02/20 18:06, Eric Wong wrote:
[ruby-core:85389] [Ruby trunk Feature#14444] MatchData: alias for #[]
From:
zverok.offline@...
Date:
2018-02-05 10:16:38 UTC
List:
ruby-core #85389
Issue #14444 has been reported by zverok (Victor Shepelev).
----------------------------------------
Feature #14444: MatchData: alias for #[]
https://bugs.ruby-lang.org/issues/14444
* Author: zverok (Victor Shepelev)
* Status: Open
* Priority: Normal
* Assignee:
* Target version:
----------------------------------------
After introduction of safe navigation operator and other latest features, it could be pretty idiomatic to do this:
```ruby
next_page = response.dig('meta', 'pagination', 'next')&.match(/&page=(\d+)/)&.[](1)
```
The ugly thing here is, obviously, `&.[](1)`. When dealing with other classes we can use `dig(one_key)` or `at(index)` for arrays, but for `MatchData` there are no good synonym/alias.
Two options come to mind:
* `&.capture(1)` — singular from "captures"
* `&.at(1)` — like it is in Array, from which MatchData already borrows `values_at`
Yes, several `&.` in a row could be said a code smell and example may feel a bit extreme.
But for simple matches, the principle stays the same: "match something and extract if matched" otherwise should be written in much less readable code like this:
```ruby
if url =~ /&page=(\d+)/
next_page = Regexp.last_match[1]
end
# or
if (m = url.match(/&page=(\d+)/))
next_page = m[1]
end
# this seems the most reasonable syntax anyways:
next_page = url.match(/&page=(\d+)/)&.at(1)
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>