[#107867] Fwd: [ruby-cvs:91197] 8f59482f5d (master): add some tests for Unicode Version 14.0.0 — Martin J. Dürst <duerst@...>
To everybody taking care of continuous integration:
3 messages
2022/03/13
[#108090] [Ruby master Bug#18666] No rule to make target 'yaml/yaml.h', needed by 'api.o' — duerst <noreply@...>
Issue #18666 has been reported by duerst (Martin D端rst).
7 messages
2022/03/28
[#108117] [Ruby master Feature#18668] Merge `io-nonblock` gems into core — "Eregon (Benoit Daloze)" <noreply@...>
Issue #18668 has been reported by Eregon (Benoit Daloze).
22 messages
2022/03/30
[ruby-core:107810] [Ruby master Feature#18618] no clobber def
From:
"Dan0042 (Daniel DeLorme)" <noreply@...>
Date:
2022-03-10 02:11:41 UTC
List:
ruby-core #107810
Issue #18618 has been updated by Dan0042 (Daniel DeLorme).
I like this idea.
But no one will use this feature if you need to always opt-in via `ncdef`.
It would make more sense as a $VERBOSE warning that can be turned off when you know you want to clobber.
```ruby
class Dog
def a; end
def b; end
def b; end #=> already has a warning; avoid by using `undef b`
end
class Poodle < Dog
no_clobber! #maybe turn on warnings for this class via DSL?
def a; super; end #=> no warning due to `super` keyword in method
def b; end #=> warning; avoid by using `undef b`
end
```
----------------------------------------
Feature #18618: no clobber def
https://bugs.ruby-lang.org/issues/18618#change-96738
* Author: ed_ (Ed Mangimelli)
* Status: Open
* Priority: Normal
----------------------------------------
Sometimes I want to be certain I'm not clobbering/masking a method:
```
class Dog
def bark
'bark!'
end
end
class Poodle < Dog
raise if method_defined? :bark
def bark
'bow-wow'
end
end
```
I propose creating a shorthand. Maybe something like:
```
class Dog
def bark
'bark!'
end
end
class Poodle < Dog
ncdef bark # "no clobber" def
'bow-wow'
end
end
=> #<MethodAlreadyDefined: Method `bark' already defined.>
```
This would be useful in scenarios where subclassing a class (or including a mixin) ***you don't own*** is common practice --for instance, subclassing `ApplicationRecord` for your model in Rails.
I agree that `ncdef` is pretty ugly. Maybe `def!`
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>