hitode909の日記

趣味はマリンスポーツですの日記です

リファクタリング:Rubyエディションを読んだ

アサーションの導入というのが紹介されていて,便利そうだった.
assertにブロックを渡して,結果が偽のとき例外が起きるようにする.
こういう感じ.

module Assertions
  class AssertionError < StandardError
  end

  def assert(&block)
    yield or raise AssertionError
  end
end

class Human
  include Assertions
  def initialize(name)
    assert{ name != nil }
    @name = name
  end
end

Human.new(nil) # ここで例外が起きる


こういうのはよいと思う.


リファクタリング:Rubyエディション

リファクタリング:Rubyエディション