[#48591] StringValuePtrでnull終止されてない文字列の作り方 — madoka yamamoto <yamamotomadoka@...>
山本ともうします。
5 messages
2014/10/05
[#48598] Re: StringValuePtrでnull終止されてない文字列の作り方
— "NARUSE, Yui" <naruse@...>
2014/10/06
まず、CRubyとしてはStringValuePtrがNUL終端する保証はしていませんから、仮にnull-terminateしてないことにより問題が起きるならば、
[#48666] Re: [ruby-cvs:55171] duerst:r48021 (trunk): common.mk: Added a rule to generate lib/unicode_normalize/tables.rb. — "Martin J. Dürst" <duerst@...>
中田さん、こんにちは。
3 messages
2014/10/19
[ruby-dev:48611] [ruby-trunk - Feature #10355] Feature request: Module#prepended?(mod)
From:
tagomoris@...
Date:
2014-10-10 03:56:16 UTC
List:
ruby-dev #48611
Issue #10355 has been updated by Satoshi TAGOMORI.
ある機能が prepend によって追加されているかどうかを調べたいときに Module#include? では不十分です。
継承関係の親クラスにおいて prepend されたモジュールのメソッドは、子クラスでも定義が存在する場合、実際には呼び出されません。
<pre><code class="ruby">
module P
def myname
str = super
"p" + str
end
end
class X
def myname
"x"
end
prepend P
end
X.include?(P) #=> true
X.new.myname #=> "px"
class Y < X
def myname
"y"
end
end
Y.include?(P) #=> true
Y.new.myname #=> "y" # without prepended method
</code></pre>
以下の方法で調べることは可能ですが冗長な上、Moduleクラスへのモンキーパッチも
通常の用途ではためらわれるため、標準でサポートされていると助かります。
<pre><code class="ruby">
class Module
def prepended?(mod)
self.ancestors.include?(mod) && self.ancestors.index(mod) < self.ancestors.index(self)
end
end
</code></pre>
----------------------------------------
Feature #10355: Feature request: Module#prepended?(mod)
https://bugs.ruby-lang.org/issues/10355#change-49333
* Author: Satoshi TAGOMORI
* Status: Open
* Priority: Normal
* Assignee:
* Category:
* Target version:
----------------------------------------
あるモジュール X に対してモジュール P1 がprependされているかどうかを調べる方法があると嬉しく思います。
Module#include? を使うと継承関係に含まれているかどうかはわかりますが、それが対象モジュールに対してprependされたものかは分かりません。
<pre>
module P1; end
module P2; end
class X
prepend P1
end
class Y< X
prepend P2
end
X.include?(P1) #=> true
Y.include?(P2) #=> true
Y.include?(P1) #=> true
# I want
X.prepended?(P1) #=> true
Y.prepended?(P2) #=> true
Y.prepended?(P1) #=> false
</pre>
--
https://bugs.ruby-lang.org/