Ruby勉強会@関西#35に参加してきました。

ohaiさんのRuby/SDLのメンテナンス期間が素晴らしく長い件。
新バージョンから、それまでGC頼りだったリソースの解放が明示的にできるようになった、ということが語られていました。すごい。
ただ、何故かチャットではGCの方が話題になり、それってザ・ワールドだよね、ということで作ってみました。

module Kernel
  def The(proc)
    proc.call
  end
  
  def World()
    Proc.new{ GC.start }
  end
end
The World   #=> NameError: uninitialized constant World
The World() #=> nil (OK)

カッコがださいので、world を使うという逃げ方もできるわけですが、破壊的なメソッドには、! を使うというローカルルールがありますので、こう書くことになりました。

# 差分のみ
module Kernel
  def World!
    Proc.new{ GC.start }
  end
end
The World!  #=> nil (OK)

使い途?そんなものはありません。GC.start を使いましょう。