本を読む

読書やコンピュータなどに関するメモ

irbで偽voidコンテキスト

 「irbで偽URL」は、comとかを特別扱いしているのが、我ながらださいと思った。途中でcomとかが入ったらだめだし。

 で、PerlのJavaScript::Writerみたいに、voidコンテキストだったら処理する、みたいなことはRubyでできないかなと考えた。

 …よく考えたら、irbなので、voidコンテキストじゃなくてpに渡されてるじゃないか。というわけでinspectに仕込んでみた。

class FakeFQDN
  @@browser_format = 'firefox %s'

  def initialize(s, chained = nil)
    @fqdn = s
    @chained = chained
  end

  def inspect
    system @@browser_format % "http://#{@fqdn}/" if @chained
    super
  end

  def method_missing(name, *args)
    FakeFQDN.new "#{@fqdn}.#{name.to_s}", true
  end

  def self.browser_format(fmt = nil)
    @@browser_format = fmt if fmt
    @@browser_format
  end
end

 という、暑くて生産的なことをしたくない日のヒトコマ。

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/419-6a8a1e6e

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad