irb -rgolf_ %*

速くなったし慣れてもきたのでirb代わりに使うことに。

  • igrbだと長すぎるからコマンド名はg
  • golf_の中身はgolf_preludeをベースに適当に拡張。
  • とりあえずデバッグしやすいように以下を追加。
  $G = []
  def record_alias new, old
    $G << s = "#{old} -> #{new}"
    $stderr.puts s
  end
      record_alias m, "#{self.class}##{t}"
      record_alias c, "#{self}::#{t}"
+

遊んでたら短縮が効かない定数があることに気付いた。

>> Eu::E
NameError: uninitialized constant Enumerable::E
        from (irb):1
        from C:/Ruby/bin/irb.bat:21:in `<main>'

const_missingはObjectにくっつけてあるんだから当然といえば当然か。
試しにModuleに移してみる。

class Module
  def const_missing c
...
>> Eu::E
Object::Enumerable -> Eu
Enumerable::Enumerator -> E
=> Enumerable::Enumerator

うむ,ちゃんと動いた。