Module: Philiprehberger::Assert

Defined in:
lib/philiprehberger/assert.rb,
lib/philiprehberger/assert/errors.rb,
lib/philiprehberger/assert/version.rb,
lib/philiprehberger/assert/assertion.rb

Defined Under Namespace

Classes: Assertion, AssertionError, MultipleFailures

Constant Summary collapse

VERSION =
'0.4.0'

Class Method Summary collapse

Class Method Details

.precondition(condition, message) ⇒ Object

Design by Contract precondition check.

Parameters:

  • condition (Boolean)

    the condition to verify

  • message (String)

    failure message

Raises:



33
34
35
# File 'lib/philiprehberger/assert.rb', line 33

def self.precondition(condition, message)
  raise AssertionError, message unless condition
end

.soft {|proc| ... } ⇒ Object

Collect assertion failures instead of raising immediately.

Yields:

  • (proc)

    a proc that creates soft assertions

Raises:



22
23
24
25
26
# File 'lib/philiprehberger/assert.rb', line 22

def self.soft
  failures = []
  yield ->(value, message = nil) { Assertion.new(value, message: message, failures: failures) }
  raise MultipleFailures, failures unless failures.empty?
end

.that(value, message = nil) ⇒ Assertion

Create a chainable assertion for the given value.

Parameters:

  • value

    the value to assert against

  • message (String, nil) (defaults to: nil)

    optional custom failure message

Returns:



14
15
16
# File 'lib/philiprehberger/assert.rb', line 14

def self.that(value, message = nil)
  Assertion.new(value, message: message)
end