Class: TestBench::Assert
- Inherits:
-
Object
show all
- Defined in:
- lib/test_bench/assert.rb,
lib/test_bench/assert/proc.rb,
lib/test_bench/assert/failed.rb,
lib/test_bench/assert/refute.rb
Direct Known Subclasses
Refute
Defined Under Namespace
Modules: Proc
Classes: Failed, Refute
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(subject, mod, block) ⇒ Assert
Returns a new instance of Assert.
7
8
9
10
11
|
# File 'lib/test_bench/assert.rb', line 7
def initialize subject, mod, block
@subject = subject
@mod = mod
@block = block
end
|
Instance Attribute Details
#block ⇒ Object
Returns the value of attribute block.
3
4
5
|
# File 'lib/test_bench/assert.rb', line 3
def block
@block
end
|
#mod ⇒ Object
Returns the value of attribute mod.
4
5
6
|
# File 'lib/test_bench/assert.rb', line 4
def mod
@mod
end
|
#subject ⇒ Object
Returns the value of attribute subject.
5
6
7
|
# File 'lib/test_bench/assert.rb', line 5
def subject
@subject
end
|
Class Method Details
.call(subject, mod = nil, &block) ⇒ Object
13
14
15
16
17
18
|
# File 'lib/test_bench/assert.rb', line 13
def self.call subject, mod=nil, &block
block ||= identity_block
instance = new subject, mod, block
instance.call
end
|
.identity_block ⇒ Object
54
55
56
|
# File 'lib/test_bench/assert.rb', line 54
def self.identity_block
@identity_block ||= -> subject do subject end
end
|
Instance Method Details
#assertions_module ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/test_bench/assert.rb', line 20
def assertions_module
return mod if mod
if subject_namespace.const_defined? :Assertions
subject_namespace.const_get :Assertions
end
end
|
#call ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/test_bench/assert.rb', line 28
def call
extend_subject assertions_module if assertions_module
result = subject.instance_exec subject, &block
interpret_result result
end
|
#extend_subject(mod) ⇒ Object
36
37
38
39
40
|
# File 'lib/test_bench/assert.rb', line 36
def extend_subject mod
raise TypeError if subject.frozen?
subject.extend mod
rescue TypeError
end
|
#interpret_result(result) ⇒ Object
42
43
44
|
# File 'lib/test_bench/assert.rb', line 42
def interpret_result result
if result then true else false end
end
|
#subject_namespace ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/test_bench/assert.rb', line 46
def subject_namespace
if subject.is_a? Module
subject
else
subject.class
end
end
|