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,
lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs/jruby.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)


209
210
211
212
213
214
215
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 209

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)


151
152
153
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 151

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
# 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.



77
78
79
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 77

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.



161
162
163
164
165
166
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 161

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)


86
87
88
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 86

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)


131
132
133
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 131

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)


95
96
97
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 95

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.



104
105
106
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 104

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)


113
114
115
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 113

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)


122
123
124
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 122

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)


174
175
176
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 174

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)


140
141
142
143
144
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 140

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.



185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/convenient_service/rspec/primitive_matchers/classes/delegate_to/entities/inputs.rb', line 185

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