[#91458] [Ruby trunk Feature#4475] default variable name for parameter — matz@...
Issue #4475 has been updated by matz (Yukihiro Matsumoto).
3 messages
2019/02/07
[ruby-core:91482] [Ruby trunk Feature#14344] refine at class level
From:
dementiev.vm@...
Date:
2019-02-07 21:13:27 UTC
List:
ruby-core #91482
Issue #14344 has been updated by palkan (Vladimir Dementyev).
matz (Yukihiro Matsumoto) wrote:
> I understand the need. But I cannot accept the proposed syntax for two reasons.
>
> (1) the original proposal using `refine` for classes, which is confusing with `refine` in refinement modules.
> (2) the modified syntax `using do` is also confusing. The scope of refinement may be in the block or the surrounding scope.
>
> Matz.
Thanks!
Since this has been marked as rejected, should we propose alternatives in a new ticket or could we continue discussing here?
----------------------------------------
Feature #14344: refine at class level
https://bugs.ruby-lang.org/issues/14344#change-76741
* Author: kddeisz (Kevin Deisz)
* Status: Rejected
* Priority: Normal
* Assignee:
* Target version:
----------------------------------------
I rely on refinements a lot, but don't want to keep writing `Module.new` in code. I'm proposing `Object::refine`, which would create an anonymous module behind the scenes with equivalent functionality. So:
~~~ ruby
class Test
using Module.new {
refine String do
def refined?
true
end
end
}
end
~~~
would become
~~~ ruby
class Test
refine String do
def refined?
true
end
end
end
~~~
It's a small change, but reads a lot more clearly. Thoughts?
--
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>