-編集、解決済み-
Object#rec
必要なことを達成するためのメソッドを作成することになりました。これが結果です。
#$l stores the last object on which Object#rec was called
$l=nil;class Object;def rec;$l=self;end;end
class String
attr_accessor :ref
alias_method :old_reverse, :reverse
def reverse
self.rec.old_reverse
end
def my_method
$l.ref + ' ' + self
end
end
a = "Hello"
b = "dlroW" ; b.ref = a
p b.reverse.my_method #=> Hello World
誰かがより良い方法を持っているなら、質問はまだ開いています。
-編集、解決済み-
問題:
私はこれに似た状況にあります:
obj.method1.method2
ここで、method1
以外のものが返され、obj
必要な参照が保持されているため、再度method2
アクセスする必要があります。obj
例えば:
class String
attr_accessor :ref
def my_method(b)
b.ref + ' ' + self
end
end
a = "Hello"
b = "dlroW" ; b.ref = a
#I want my_method to access 'b.ref' without having to pass 'b'
p b.reverse.my_method(b) #=> Hello World
別:
反転(例)と参照へのアクセスの両方を使用して実行した場合、または変更を加えて元の値を返すなどのコメントを付けb
た場合は、再度合格する必要がないことはわかっていますが、それが可能かどうかを知りたいのですが、上記を実行します。 obj.my_method
my_method
the Tin Man
method1
obj
obj
前もって感謝します。