Module: CodeAssertions

Defined in:
lib/code-assertions.rb

Defined Under Namespace

Classes: CodeAssertionFailed

Constant Summary collapse

@@assertions_check =
true

Instance Method Summary collapse

Instance Method Details

#assert(message = "Assertion failed", &block) ⇒ Object



9
10
11
12
13
# File 'lib/code-assertions.rb', line 9

def assert(message="Assertion failed", &block)
    return unless @@assertions_check
    
    raise CodeAssertionFailed, message unless block.call
end

#assert_not_nil(object) ⇒ Object



15
16
17
# File 'lib/code-assertions.rb', line 15

def assert_not_nil(object)
    assert("The result cannot be `nil` or `false`. #{object} given") { object }
end

#assert_type(type, object) ⇒ Object



19
20
21
22
# File 'lib/code-assertions.rb', line 19

def assert_type(type, object)
    assert("`type` should be an instance of `Class`") { type.is_a?(Class) }
    assert("Wrong type: expected #{type.name}, given #{object.class.name}") { object.is_a?(type) }
end

#assertions_offObject



5
6
7
# File 'lib/code-assertions.rb', line 5

def assertions_off
    @@assertions_check = false
end