Project

General

Profile

ActionsLike0

Feature #8110

closed

Regex methods not changing global variables

Added by prijutme4ty (Ilya Vorontsov) about 12 years ago. Updated almost 9 years ago.

Status:
Closed
Target version:
-
[ruby-core:53498]

Description

It is useful to have methods allowing pattern matching without setting global variables. It can be very hard to understand where the problem is when you for example insert a string like puts pat === my_str and your program fails in a place which is far-far away from inserted place. This can happen due to replacing global variables of previous pattern match. I caught to this when placed pattern-match inside case-statement and shadowed global vars which were initially filled by match in when-statement.
For now one can extract pattern matching into another method thus defining method-scope for that variables. But sometimes it looks like an overkill. May be simple method like #match_globalsafe can prevent that kind of errors. At least when a programmer see such a method in a list of methods, he's warned that usual match can cause such problems.


Related issues 3 (2 open1 closed)

Related to Ruby - Feature #8206: Should Ruby core implement String#blank? OpenActions
Related to Ruby - Feature #12306: Implement String #blank? #present? and improve #strip and family to handle unicodeAssignedmatz (Yukihiro Matsumoto)Actions
Related to Ruby - Bug #14695: [2.5.1] `===` is 1.77x slower than `match?`ClosedActions

Updated by naruse (Yui NARUSE) about 12 years ago

  • Category set to core
  • Status changed from Open to Assigned
  • Assignee set to matz (Yukihiro Matsumoto)
  • Target version set to 2.6
#18

Updated by mrkn (Kenta Murata) almost 9 years ago

  • Related to Feature #12306: Implement String #blank? #present? and improve #strip and family to handle unicode added

Updated by naruse (Yui NARUSE) almost 9 years ago

  • Status changed from Assigned to Closed
#22

Updated by shyouhei (Shyouhei Urabe) about 7 years ago

  • Related to Bug #14695: [2.5.1] `===` is 1.77x slower than `match?` added
ActionsLike0

Also available in: Atom PDF