Rakeでnamespaceなどを使った場合に、Rubyのシンボルをネストさせたい時があるのですが、

   1  task :foo => :"bar:baz"

のように書くのが、DSL的にちょっとかっこうわるいです。 そこで、以下のようなものがあればちょっと奇麗に書けます。

   1  class Symbol
   2    def method_missing(method, *args, &block)
   3      if args.empty? && block.nil?
   4        [self, method].join(':').intern
   5      else    
   6        super 
   7      end
   8    end
   9  end
  10  
  11  >> :foo #=> :foo
  12  >> :foo.bar #=> :"foo:bar"
  13  >> :foo.bar.baz #=> :"foo:bar:baz"

いかがでしょう。

posted by Png genki on Wed 15 Apr 2009 at 05:49

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry1432
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ