Class: ConvenientService::RSpec::PrimitiveMatchers::Classes::DelegateTo::Entities::Inputs

Inherits:
Object
  • Object
show all
Defined in:
lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(object:, method:, block_expectation:) ⇒ void

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • object (Object)
  • method (String, Symbol)
  • block_expectation (Proc)


31
32
33
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 31

def initialize(object:, method:, block_expectation:)
  @values = {object: object, method: method, block_expectation: block_expectation}
end

Instance Attribute Details

#valuesObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



21
22
23
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 21

def values
  @values
end

Instance Method Details

#==(other) ⇒ Boolean?

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • other (Object)

    Can be any type.

Returns:

  • (Boolean, nil)


215
216
217
218
219
220
221
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 215

def ==(other)
  return unless other.instance_of?(self.class)

  return false if values != other.values

  true
end

#block_expectationProc?

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Proc, nil)


40
41
42
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 40

def block_expectation
  values[:block_expectation]
end

#block_expectation=(block) ⇒ Proc

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Proc)


157
158
159
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 157

def block_expectation=(block)
  values[:block_expectation] = block
end

#custom_return_valueObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns Can be any type.

Returns:

  • (Object)

    Can be any type.



52
53
54
55
56
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 52

def custom_return_value
  return values[:custom_return_value] if values.has_key?(:custom_return_value)

  values[:custom_return_value] = expected_return_value_block.call(delegation_value)
end

#delegation_valueObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns Can be any type.

Returns:

  • (Object)

    Can be any type.



66
67
68
69
70
71
72
73
74
75
76
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 66

def delegation_value
  return values[:delegation_value] if values.has_key?(:delegation_value)

  values[:delegation_value] =
    object.__send__(
      method,
      *expected_arguments.args,
      **expected_arguments.kwargs,
      &expected_arguments.block
    )
end

#expected_argumentsConvenientService::Support::Arguments

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



83
84
85
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 83

def expected_arguments
  values[:expected_arguments] ||= Support::Arguments.null_arguments
end

#expected_arguments=(arguments) ⇒ ConvenientService::Support::Arguments

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



167
168
169
170
171
172
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 167

def expected_arguments=(arguments)
  values.delete(:delegation_value)
  values.delete(:custom_return_value)

  values[:expected_arguments] = arguments
end

#expected_return_value_blockProc

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Proc)


92
93
94
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 92

def expected_return_value_block
  values[:expected_return_value_block] ||= proc { Support::UNDEFINED }
end

#has_call_original?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


137
138
139
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 137

def has_call_original?
  values.has_key?(:should_call_original)
end

#methodString, Symbol

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (String, Symbol)


101
102
103
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 101

def method
  values[:method]
end

#objectObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns Can be any type.

Returns:

  • (Object)

    Can be any type.



110
111
112
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 110

def object
  values[:object]
end

#printable_block_expectationString

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (String)


119
120
121
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 119

def printable_block_expectation
  @printable_block_expectation ||= Utils::Proc.display(block_expectation)
end

#printable_methodString

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (String)


128
129
130
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 128

def printable_method
  @printable_method ||= Commands::GeneratePrintableMethod.call(object: object, method: method)
end

#should_call_original=(flag) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • flag (Boolean)

Returns:

  • (Boolean)


180
181
182
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 180

def should_call_original=(flag)
  values[:should_call_original] = flag
end

#should_call_original?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


146
147
148
149
150
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 146

def should_call_original?
  return values[:should_call_original] if values.has_key?(:should_call_original)

  values[:should_call_original] = true
end

#update_expected_return_value_block(*args, &block) ⇒ Proc

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



191
192
193
194
195
196
197
198
199
200
201
202
203
204
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 191

def update_expected_return_value_block(*args, &block)
  values.delete(:custom_return_value)

  values[:expected_return_value_block] =
    if args.any? && block
      ::ConvenientService.raise Exceptions::ReturnCustomValueChainingInvalidArguments.new
    elsif args.any?
      proc { args.first }
    elsif block
      block
    else
      ::ConvenientService.raise Exceptions::ReturnCustomValueChainingInvalidArguments.new
    end
end