From: duerst@... Date: 2017-08-12T10:05:08+00:00 Subject: [ruby-core:82360] [Ruby trunk Feature#13807] A method to filter the receiver against some condition Issue #13807 has been updated by duerst (Martin D��rst). I don't see any improvement. The new way that would be possible with the `verify` method is longer and more complicated than the simple and straightforward `a.some_condition ? a : b`. ---------------------------------------- Feature #13807: A method to filter the receiver against some condition https://bugs.ruby-lang.org/issues/13807#change-66157 * Author: sawa (Tsuyoshi Sawada) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I frequently see code that uses some value if that value satisfies a certain condition, and something else otherwise. ```ruby a.some_condition ? a : b ``` And in most cases, the value of `a` is non-nil when the condition is satisfied. I propose to have a method, perhaps named `verify`, which would implemented to be equivalent to this definition: ```ruby class Object def verify self if yield(self) end end ``` Then, we can write the expression above (assuming `a` is non-nil when the condition is satisfied) like this: ```ruby a.verify{|a| a.some_condition} || b ``` Perhaps it would also be useful to do something like: ```ruby a.verify{|a| a.some_condition}&.chaining_of_more_methods ``` -- https://bugs.ruby-lang.org/ Unsubscribe: