Class: RSpec::Mocks::AnyInstance::FluentInterfaceProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/mocks/any_instance/proxy.rb

Overview

Delegates messages to each of the given targets in order to provide the fluent interface that is available off of message expectations when dealing with `any_instance`.

`targets` will typically contain 1 of the `AnyInstance::Recorder` return values and N `MessageExpectation` instances (one per instance of the `any_instance` klass).

Instance Method Summary (collapse)

Constructor Details

- (FluentInterfaceProxy) initialize(targets)

Returns a new instance of FluentInterfaceProxy



91
92
93
# File 'lib/rspec/mocks/any_instance/proxy.rb', line 91

def initialize(targets)
  @targets = targets
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

- (Object) method_missing(*args, &block)



105
106
107
108
# File 'lib/rspec/mocks/any_instance/proxy.rb', line 105

def method_missing(*args, &block)
  return_values = @targets.map { |t| t.__send__(*args, &block) }
  FluentInterfaceProxy.new(return_values)
end

Instance Method Details

- (Boolean) respond_to?(method_name, include_private = false)

Returns:

  • (Boolean)


100
101
102
# File 'lib/rspec/mocks/any_instance/proxy.rb', line 100

def respond_to?(method_name, include_private = false)
  super || @targets.first.respond_to?(method_name, include_private)
end

- (Boolean) respond_to_missing?(method_name, include_private = false)

Returns:

  • (Boolean)


96
97
98
# File 'lib/rspec/mocks/any_instance/proxy.rb', line 96

def respond_to_missing?(method_name, include_private = false)
  super || @targets.first.respond_to?(method_name, include_private)
end