irbでennnnndを使えるようにするパッチ書いた
おまえまだそれ引き摺ってんのかよと言われたら、はいそうですと答えるしかない。
残念ながらcloseされてしまったというか、してしまったennnnndだけど、Ruby本体はともかくirbにあったら実際便利な気もします。
ということで作ってみました。
*** ruby-1.9.2-p290/lib/irb/ruby-lex.rb 2010-12-08 17:09:11.000000000 +0900 --- irb-ennnd/lib/irb/ruby-lex.rb 2011-07-31 11:37:21.000000000 +0900 *************** *** 780,785 **** --- 780,796 ---- token.concat getc end + if token =~ /e(nn+)d/ + $1.size.times do + @rests.unshift "end", "\n" + end + token.size.times do + @readed.pop + end + @readed.push "\n" + return + end + # almost fix token case token
利用例はこんな感じ。irbは現在のインデントレベルが表示されるので使い勝手もなかなか悪く無いっすね。
$ ruby1.9 -Ilib bin/irb irb(main):001:0> class Foo irb(main):002:1> def bar irb(main):003:2> p :hello irb(main):004:2> ennd => nil irb(main):007:0* Foo.new.bar :hello => :hello
これFeature Requestしたらいい加減にしろって怒られちゃうかなぁ・・・。