class SolidAssert::Assert

Actual assertions implementation

Public Instance Methods

assert(condition, message = nil) click to toggle source

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

@param condition A condition to assert @param message An optional error message @raise {AssertionFailedError} when the condition is not satisfied

# File lib/solid_assert/assert.rb, line 19
def assert(condition, message = nil)
  fail SolidAssert::AssertionFailedError.new(message) if !condition
end
invariant(message = nil) { || ... } click to toggle source

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

@param message An optional error message @raise {AssertionFailedError} when the condition is not satisfied @yield A block of code

# File lib/solid_assert/assert.rb, line 43
def invariant(message = nil)
  assert yield, message
end