[#114703] [Ruby master Bug#19875] Ruby 2.7 -> 3.1 Performance regression in String#count — "iz (Illia Zub) via ruby-core" <ruby-core@...>

Issue #19875 has been reported by iz (Illia Zub).

18 messages 2023/09/12

[#114774] [Ruby master Feature#19884] Make Safe Navigation Operator work on classes — "p8 (Petrik de Heus) via ruby-core" <ruby-core@...>

Issue #19884 has been reported by p8 (Petrik de Heus).

13 messages 2023/09/15

[#114796] [Ruby master Feature#19889] Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths — "sawa (Tsuyoshi Sawada) via ruby-core" <ruby-core@...>

Issue #19889 has been reported by sawa (Tsuyoshi Sawada).

6 messages 2023/09/18

[#114803] [Ruby master Bug#19890] File#realine(chomp: true) slower/more allocations than readline.chomp! — "segiddins (Samuel Giddins) via ruby-core" <ruby-core@...>

Issue #19890 has been reported by segiddins (Samuel Giddins).

12 messages 2023/09/18

[#114817] [Ruby master Bug#19892] Build failure with 8f1b688177 — "vo.x (Vit Ondruch) via ruby-core" <ruby-core@...>

Issue #19892 has been reported by vo.x (Vit Ondruch).

8 messages 2023/09/19

[#114915] [Ruby master Feature#19905] Introduce `Queue#peek` — "hi@... (Joao Fernandes) via ruby-core" <ruby-core@...>

Issue #19905 has been reported by hi@joaofernandes.me (Joao Fernandes).

8 messages 2023/09/28

[ruby-core:114677] [Ruby master Feature#19871] Add __owner__

From: "konsolebox (K B) via ruby-core" <ruby-core@...>
Date: 2023-09-10 15:03:56 UTC
List: ruby-core #114677
Issue #19871 has been updated by konsolebox (K B).


The changes needed to implement this turned out to be just simple so I went ahead and just created a PR in https://github.com/ruby/ruby/pull/8411.

The difference between using `method(__method__).owner` and using `__owner__` can be demonstrated in the following code:

``` ruby
module M
  C = 1234

  def m
    puts "method(__method__).owner: #{method(__method__).owner}"
    puts "method(__method__).owner::C: #{method(__method__).owner::C}"
    puts "__owner__: #{__owner__}"
    puts "__owner__::C: #{__owner__::C}"
  end
end

class N
  include M
  C = 5678

  def m
    super
  end
end

N.new.m

```
Output:
```
method(__method__).owner: N
method(__method__).owner::C: 5678
__owner__: M
__owner__::C: 1234
```


----------------------------------------
Feature #19871: Add __owner__
https://bugs.ruby-lang.org/issues/19871#change-104506

* Author: konsolebox (K B)
* Status: Open
* Priority: Normal
----------------------------------------
Which will give the owner of the currently executing method.

`method(__method__).owner` or `method(__callee__).owner` isn't enough since it may return a different owner if the method is overridden.

Relying on calling the name of its owner is also theoretically not reliable since the constant can be overshadowed and it makes code less portable when moving it from one namespace to another.



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/

In This Thread