Class: Funktional::RecursiveAssertion

Inherits:
Assertion
  • Object
show all
Defined in:
lib/funktional/recursive_assertion.rb

Instance Method Summary collapse

Constructor Details

#initialize(assigned, method) ⇒ RecursiveAssertion

Returns a new instance of RecursiveAssertion.



3
4
5
6
7
8
9
# File 'lib/funktional/recursive_assertion.rb', line 3

def initialize(assigned, method)
  @test = Funktional.test_instance
  @assigned = assigned
  @method = method
  
  @test.assert_respond_to @assigned, @method
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object (protected)



22
23
24
25
# File 'lib/funktional/recursive_assertion.rb', line 22

def method_missing(method, *args)
  @assigned = @assigned.send @method
  RecursiveAssertion.new(@assigned, method)
end

Instance Method Details

#should_be(expected_value = nil, &block) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/funktional/recursive_assertion.rb', line 11

def should_be(expected_value=nil, &block)
  if block_given?
    expected_value ||= block.bind(@test).call
  end
  
  value = @assigned.send @method
  @test.assert_equal expected_value, value
end