@m_seki の

I like ruby tooから引っ越し

ERB, quote

@shyouheiさんがネタをふってくれました。

http://twitter.com/shyouhei/status/9738804403

ちょっと前、というかずいぶん前にこんなの(ERBの言い訳)書いてたのを思い出して、試してみました。$stdoutに限定したらこんな感じです。@shyouheiさんが使うならこんな程度のひどさで大丈夫ですよね?
誰でも使えるようなやつを書くなら、もうちょっと化粧箱に入れないといやがられるだろうな。

require 'erb'

src = <<EOS
Hello, World. <%= Time.now.strftime("%H:%M:%S") %>
EOS

class ERB2stdout < ERB
  def set_eoutvar(compiler, eoutvar = '_eoutvar')
    compiler.put_cmd = ['$stdout.print']
    compiler.insert_cmd = ['$stdout.print']
    compiler.pre_cmd = []
    compiler.post_cmd = []
  end

  def run(b=TOPLEVEL_BINDING)
    result(b)
  end
end

e = ERB2stdout.new(src)
e.run

(追記)本気で忘れていましたが、

ERbとERbLightがあった時代、ERbは標準出力に印字してました。