本を読む

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

irbで偽URL

 「irbで偽実行ファイル」を書いてみて、同じようなやりかたでURLの偽FQDN版を考えてみた。

$ irb
irb(main):001:0> require 'fakefqdn'
=> true
irb(main):002:0> www = FakeFQDN.new 'www'
=> #<FakeFQDN:0xb7cdf804 @fqdn="www">
irb(main):003:0> www.google.com
=> true
(Firefoxでhttp://www.google.com/が開く)

 これも10,000人ぐらい試してそう。

 fakefqdn.rbはこんな感じ。

class FakeFQDN
  @@browser_format = 'firefox %s'

  def initialize(s)
    @fqdn = s
  end

  def com
    system(@@browser_format % "http://#{@fqdn}.#{get_method_name}/")
  end

  alias_method :jp, :com
  alias_method :org, :com

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

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

private

  def get_method_name
    /^.+?:\d+:in `(.*)'/ =~ caller(1)[0] and $1
  end
end

コメント

コメントの投稿

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

トラックバック

http://emasaka.blog65.fc2.com/tb.php/417-8ea75dd1

irbで偽voidコンテキスト

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

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

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

Monthly


FC2Ad