Module: RSpec::Mocks::VerifyingDouble

Included in:
InstanceVerifyingDouble, ObjectVerifyingDoubleMethods
Defined in:
lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.2/lib/rspec/mocks/verifying_double.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(message, *args, &block) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.2/lib/rspec/mocks/verifying_double.rb', line 20

def method_missing(message, *args, &block)
  # Null object conditional is an optimization. If not a null object,
  # validity of method expectations will have been checked at definition
  # time.
  if null_object?
    if @__sending_message == message
      __mock_proxy.ensure_implemented(message)
    else
      __mock_proxy.ensure_publicly_implemented(message, self)
    end

    __mock_proxy.validate_arguments!(message, args)
  end

  super
end

Instance Method Details

#__send__(name, *args, &block) ⇒ Object



39
40
41
42
43
44
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.2/lib/rspec/mocks/verifying_double.rb', line 39

def __send__(name, *args, &block)
  @__sending_message = name
  super
ensure
  @__sending_message = nil
end

#initialize(doubled_module, *args) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.2/lib/rspec/mocks/verifying_double.rb', line 51

def initialize(doubled_module, *args)
  @doubled_module = doubled_module

  possible_name = args.first
  name = if String === possible_name || Symbol === possible_name
           args.shift
         end

  super(name, *args)
  @__sending_message = nil
end

#respond_to?(message, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.2/lib/rspec/mocks/verifying_double.rb', line 7

def respond_to?(message, include_private=false)
  return super unless null_object?

  method_ref = __mock_proxy.method_reference[message]

  case method_ref.visibility
  when :public    then true
  when :private   then include_private
  when :protected then include_private || RUBY_VERSION.to_f < 2.0
  else !method_ref.unimplemented?
  end
end

#send(name, *args, &block) ⇒ Object



47
48
49
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-mocks-3.12.2/lib/rspec/mocks/verifying_double.rb', line 47

def send(name, *args, &block)
  __send__(name, *args, &block)
end