[#49675] Request to update LEGAL file for zlib, UCD license — Jun Aruga <jaruga@...>
こんにちは。有賀と申します。
10 messages
2016/06/20
[#49678] Re: Request to update LEGAL file for zlib, UCD license
— Jun Aruga <jaruga@...>
2016/06/21
ご回答、そして+1のご意見ありがとうございます。
[#49683] Re: Request to update LEGAL file for zlib, UCD license
— Martin J. Dürst <duerst@...>
2016/06/22
On 2016/06/22 00:15, Jun Aruga wrote:
[ruby-dev:49656] [Ruby trunk Bug#12478] ruby2.2.5でオブジェクトに対して def_delegatorを行うとNoMethodError undefined method `method_defined?' が発生する。
From:
jy5kisok@...
Date:
2016-06-10 01:58:57 UTC
List:
ruby-dev #49656
Issue #12478 has been reported by keiichi ishioka.
----------------------------------------
Bug #12478: ruby2.2.5でオブジェクトに対して def_delegatorを行うとNoMethodError undefined method `method_defined?' が発生する。
https://bugs.ruby-lang.org/issues/12478
* Author: keiichi ishioka
* Status: Open
* Priority: Normal
* Assignee:
* ruby -v: 2.2.5
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
- 再現コード
> printer = String.new
> printer.extend SingleForwardable
> printer.def_delegator "STDOUT", :puts
NoMethodError: undefined method `method_defined?' for "":String
- 原因
- def_single_delegatorで "method_defined?"を行っていますが、
- Moduleクラスをmix-inしていないオブジェクトの場合NoMethodErrorになる。
- 回避方法案
- Moduleが該当オブジェクトのclassに属していない場合,該当処理をスキップする
--- /usr/local/.rbenv/versions/2.2.5/lib/ruby/2.2.0/forwardable.rb.org 2016-06-10 10:31:09.613979605 +0900
+++ /usr/local/.rbenv/versions/2.2.5/lib/ruby/2.2.0/forwardable.rb 2016-06-10 10:35:06.452506085 +0900
@@ -277,7 +277,7 @@
accessor = accessor.to_s
if method_defined?(accessor) || private_method_defined?(accessor)
accessor = "#{accessor}()"
- end if
+ end if self.class === Module
line_no = __LINE__; str = %{
def #{ali}(*args, &block)
--
https://bugs.ruby-lang.org/