From: Yukihiro Matsumoto Date: 2011-11-03T19:40:22+09:00 Subject: [ruby-dev:44791] [ruby-trunk - Feature #5554][Feedback] A method that applies self to a Proc if self is a Symbol Issue #5554 has been updated by Yukihiro Matsumoto. Status changed from Open to Feedback ごめんなさい。「本当に意図したのは」という部分の意図が読み取れません。 どのような局面でどのように嬉しいか(たとえば劇的にシンプルに記述できるから)を表現してください。 ただ単に「こんな風に書きたいと私が感じる」だとたぶん不十分です。 自分でメソッド定義するかActiveSupportに提案すれば良いわけで。 ---------------------------------------- Feature #5554: A method that applies self to a Proc if self is a Symbol http://redmine.ruby-lang.org/issues/5554 Author: Tsuyoshi Sawada Status: Feedback Priority: Normal Assignee: Category: Target version: Often, you want to apply a Proc to self if self is a Symbol, but not do anything if otherwise. In this case, something I call Object#desymbolize may be convenient: proc = ->sym{ case sym when :small_icon then "16pt" when :medium_icon then "32pt" when :large_icon then "64pt" end } :small_icon.desymbolize(&proc) => "16pt" "18pt".desymbolize(&proc) => "18pt" An implementation may be as follows: class Object def desymbolize; self end end class Symbol def desymbolize ≺ pr.call(self) end end -- http://redmine.ruby-lang.org