読者です 読者をやめる 読者になる 読者になる

ライブラリ作成覚書(Ruby)

ちょっと考えてみた。デザインパターンっぽいのだけれど、何だろう。

module App
  class A
    def display=(st)
      puts st
    end
    
    def <<(st)
      puts st
    end
    
    def output(st)
      puts st
    end
  end
  
  def self.exec(&bk)
    A.new.instance_eval(&bk)
  end
end

App.exec do |x|
  x.display = "test1"
  x << "test2"
  output("test3")
end



※追記
多少変更。self.exec の中で instance_eval を使うようにした。
instance_eval(&bk) で、ブロックの中の self を変えることができる。(5/17)