From: eregontp@... Date: 2017-05-13T14:55:15+00:00 Subject: [ruby-core:81144] [Ruby trunk Feature#13559] Change implementation of Feature #6721 Issue #13559 has been updated by Eregon (Benoit Daloze). nobu (Nobuyoshi Nakada) wrote: > And `let`... but it is used by RSpec. Is that actually a problem? https://github.com/rspec/rspec-core/blob/f4dc5ef5c6bded2b1ec348e856352b60a3e072e9/lib/rspec/core/memoized_helpers.rb#L249-L251 defines it on the example group, so I think it does not clash unless you want to use it inside the ExampleGroup itself, which seems useless (`self` already refers to the ExampleGroup). ---------------------------------------- Feature #13559: Change implementation of Feature #6721 https://bugs.ruby-lang.org/issues/13559#change-64795 * Author: dunrix (Damon Unrix) * Status: Feedback * Priority: Normal * Assignee: * Target version: ---------------------------------------- Hi, please reconsider implementation of feature request #6721 planned for Ruby 2.5.0 . Instead of introducing new method `Object#yield_self`, just reuse existing `Object#itself` by taking an optional block argument. Find it much clearer and more logical solution, not superfluous polluting of API space. `Object#itself` just returns target object, optional block would return alternative value with target object passed as block argument. Prototyped sol. in Ruby: ~~~ruby class Object def itself block_given? ? yield(self) : self end end ~~~ Not aware of any case, where it would break backward compatibility. -- https://bugs.ruby-lang.org/ Unsubscribe: