2013年11月23日土曜日

rubyのブロックの使い方

普段、ブロックって普通に使ってるけど、改めて使い方を書いてみる。
ブロックを使って、ソースコードを一カ所にまとめる。
class Bike
  def start
    puts "start"
  end 

  def stop
    puts "stop"
  end 
end
悪いコード
class BigBike
  def start
    begin
      bike = Bike.new
      bike.start
    rescue Exception => e
      puts "failed: #{e}"
    end
  end 

  def stop
    begin
      bike = Bike.new
      bike.stop
    rescue Exception => e
      puts "failed: #{e}"
    end
  end
end
良いコード
class BigBike
  def start
    big_bike do |v|
      v.start
    end 
  end 

  def stop
    big_bike do |v|
      v.stop
    end
  end

  def big_bike
    begin
      bike = Bike.new
      yield bike
    rescue Exception => e
      puts "failed: #{e}"
    end
  end

0 件のコメント: