Hatena::Groupruby

kdmsnrの日記

 | 

1000-01-04

それ、Procでできるよ

12:02

class Report
  attr_reader :title, :text
  attr_accessor :formatter

  def initialize(&formatter)
    @title = 'Monthly Report'
    @text =  [ 'Things are going', 'really, really well.' ]
    @formatter = formatter
  end

  def output_report
    @formatter.call( self )
  end
end

おさらい

def target(&block) # ブロックをProcで受けますよ
  p block # Procオブジェクト
end

# ブロック付きで呼び出し
target do |i| 
  #
end

# Procをブロックにして呼び出し
target(&Proc.new{})

# --------------------------

def target(proc)
  p proc # 当然Procオブジェクト
end

target(Proc.new{})

#---------------

def target # 引数を明示しないでブロック受け
  yield
end

target do ||
  puts "hoge"
end
 |