class RSpec::SleepingKingStudios::Support::ValueSpy

Encapsulates the value of a method call or block, and captures a snapshot of the value at the time the spy is initialized.

@example Observing a Method

user  = Person.new(name: 'Alan Bradley')
value = ValueSpy.new(user, :name)
value.initial_value #=> 'Alan Bradley'
value.current_value #=> 'Alan Bradley'

user.name = 'Ed Dillinger'
value.initial_value #=> 'Alan Bradley'
value.current_value #=> 'Ed Dillinger'

@example Observing a Block

value = ValueSpy.new { Person.where(virtual: false).count }
value.initial_value #=> 4
value.current_value #=> 4

Person.where(name: 'Kevin Flynn').enter_grid!
value.initial_value #=> 4
value.current_value #=> 3