Issue #13812 has been updated by ttanimichi (Tsukuru Tanimichi).


hsbt さん

RubyKaigi でお忙しいところすみません、
hsbt さんに聞くのが適切か分かりませんが、もしよろしければ相談させてください。

本件、すでに nobu さんのパッチがあり、
まつもとさんの承認も得られていますが、どうされますか?

仕様変更の議論なので英語でやった方が良かったかなとも思うんですが、
既にまつもとさんの承認も得られていますし、こういう場合って普段どうされてます?
また、英語で議論する場合、

> 英語で新規にチケットを起票した方が良いでしょうか?
> それともこのチケットの Title と Description を編集して英語に書き換えた方がいいですか?

これってどちらが良いでしょうか?

個人的な想いとしては、2.5 リリースに間に合うと嬉しいです。


----------------------------------------
Feature #13812: Refinements で定義した to_s を String interpolation が呼んでくれない
https://bugs.ruby-lang.org/issues/13812#change-66733

* Author: Anonymous
* Status: Assigned
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version: 
----------------------------------------
はじめまして。谷道と申します。

既出だったらすみません。bugs.ruby-lang.org でも検索したんですが
それっぽいチケットが見当たらなかったので確認させてください。

Refinements で定義した to_s を String interpolation が呼んでくれないのですが、これって仕様なんですかね?
String literal の評価が using B しているスコープの外で行われる、ということでしょうか。

```
$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
```

```ruby
class A
end

module B
  refine A do
    def to_s
      'b'
    end
  end
end

class C
  using B

  def initialize
    @a = A.new
  end

  def c1
    @a.to_s
  end

  def c2
    "#{@a}"
  end

  def c3
    puts "#{@a}"
  end
end

puts C.new.c1 #=> b
puts C.new.c2 #=> #<A:0x007fb05ba3e928>
C.new.c3 #=> #<A:0x007fb05ba3e7e8>
```

c1, c2, c3 ともに "b" となることを想像していました。

-- 
谷道 創(Tsukuru Tanimichi)
https://ttanimichi.com/




-- 
https://bugs.ruby-lang.org/