From: "KISHIMOTO, Makoto" Date: 2015-01-22T16:52:46+09:00 Subject: [ruby-list:50070] Re: メソッドが無い「ふり」をする方法 On Wed, 21 Jan 2015 21:57:37 +0900 whiteleaf <2nd.leaf@gmail.com> wrote: > やられたいこととは違うかもしれませんが。 > > module M > refine String do > def to_html > "call #to_html" > end > end > end > > def with_to_html > yield > end > > using M > > with_to_html do > p "hoge".to_html > end > # => call #to_html > > require_relative "tt" # 他の場所でも with_to_html を使おうとすると undefined method > `#to_html` > > refine 使えば using を使ったところでのみ String の拡張を制限出来ますね。 はい。 # 少々説明不足でした。 元々、Ruby の (新しく入った) refinement などの影響を受けている こちらの言語(処理系) http://takuto-h.hateblo.jp/entry/2014/11/16/204842 の発表を聞いて、似たような感じのことをメタプログラミングの手法で 簡単にできないか、というのが動機の実験でした。