Class: VerifiedDouble::RecordingDouble

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/verified_double/recording_double.rb

Instance Method Summary collapse

Constructor Details

#initialize(double) ⇒ RecordingDouble

Returns a new instance of RecordingDouble.



5
6
7
8
# File 'lib/verified_double/recording_double.rb', line 5

def initialize(double)
  @double = double
  super(@double)
end

Instance Method Details

#and_return(return_value) ⇒ Object



10
11
12
13
14
# File 'lib/verified_double/recording_double.rb', line 10

def and_return(return_value)
  self.method_signatures.last.return_value = return_value
  @double_call.and_return(return_value)
  self
end

#class_double?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/verified_double/recording_double.rb', line 16

def class_double?
  ! double.is_a?(RSpec::Fire::FireObjectDouble)
end

#class_nameObject



20
21
22
# File 'lib/verified_double/recording_double.rb', line 20

def class_name
  double.instance_variable_get('@name')
end

#doubleObject



24
25
26
# File 'lib/verified_double/recording_double.rb', line 24

def double
  __getobj__
end

#inspectObject



28
29
30
# File 'lib/verified_double/recording_double.rb', line 28

def inspect
  to_s
end

#method_operatorObject



32
33
34
# File 'lib/verified_double/recording_double.rb', line 32

def method_operator
  class_double? ? '.' : '#'
end

#method_signaturesObject



36
37
38
# File 'lib/verified_double/recording_double.rb', line 36

def method_signatures
  @method_signatures ||= []
end

#should_receive(method) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/verified_double/recording_double.rb', line 40

def should_receive(method)
  method_signature = MethodSignature.new(self)
  method_signature.method = method
  self.method_signatures << method_signature
  @double_call = super(method)
  self
end

#to_sObject



48
49
50
# File 'lib/verified_double/recording_double.rb', line 48

def to_s
  "#{VerifiedDouble}.of_#{class_double? ? 'class' : 'instance' }('#{class_name}')"
end

#with(*args) ⇒ Object



52
53
54
55
56
# File 'lib/verified_double/recording_double.rb', line 52

def with(*args)
  self.method_signatures.last.args = args
  @double_call.with(*args)
  self
end