Class: SolidAssert::Assert

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/solid_assert/assert.rb

Overview

Actual assertions implementation

Instance Method Summary collapse

Instance Method Details

#assert(condition, message = nil) ⇒ Object

Check if a condition is truthy and fail if it is not.

Usage:

assert expr  # raise SolidAssert::AssertionFailedError if expr is falsy
assert !list.empty?, "The list should not be empty"  # optional error message

Parameters:

  • condition

    A condition to assert

  • message (defaults to: nil)

    An optional error message

Raises:



19
20
21
# File 'lib/solid_assert/assert.rb', line 19

def assert(condition, message = nil)
  fail SolidAssert::AssertionFailedError.new(message) if !condition
end

#invariant(message = nil) { ... } ⇒ Object

Let you #assert a block of code.

It comes handy when your assertion requires more than one line of code. An assertion is performed on the result of the provided block evaluation.

Usage:

invariant do
  some_number = 1
  other_number = 2
  some_number == other_number
end

invariant "Both numbers should be equal" do  # optional error message
  ...
  some_number == other_number
end

Parameters:

  • message (defaults to: nil)

    An optional error message

Yields:

  • A block of code

Raises:



43
44
45
# File 'lib/solid_assert/assert.rb', line 43

def invariant(message = nil)
  assert yield, message
end