Class: RR::DoubleDefinitionBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/rr/double_definition_builder.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(definition, args, handler) ⇒ DoubleDefinitionBuilder

Returns a new instance of DoubleDefinitionBuilder.



5
6
7
8
9
# File 'lib/rr/double_definition_builder.rb', line 5

def initialize(definition, args, handler)
  @definition = definition
  @args = args
  @handler = handler
end

Instance Attribute Details

#definitionObject (readonly)

Returns the value of attribute definition.



3
4
5
# File 'lib/rr/double_definition_builder.rb', line 3

def definition
  @definition
end

Instance Method Details

#dont_allow!Object



20
21
22
23
24
# File 'lib/rr/double_definition_builder.rb', line 20

def dont_allow!
  @definition.never
  permissive_argument!
  reimplementation!
end

#mock!Object



11
12
13
# File 'lib/rr/double_definition_builder.rb', line 11

def mock!
  @definition.with(*@args).once
end

#permissive_argument!Object



26
27
28
29
30
31
32
# File 'lib/rr/double_definition_builder.rb', line 26

def permissive_argument!
  if @args.empty?
    @definition.with_any_args
  else
    @definition.with(*@args)
  end
end

#proxy!Object



38
39
40
41
42
# File 'lib/rr/double_definition_builder.rb', line 38

def proxy!
  @definition.after_call_block_callback_strategy!
  @definition.implemented_by_original_method
  @definition.after_call(&@handler) if @handler
end

#reimplementation!Object



34
35
36
# File 'lib/rr/double_definition_builder.rb', line 34

def reimplementation!
  @definition.returns(&@handler)
end

#stub!Object



15
16
17
18
# File 'lib/rr/double_definition_builder.rb', line 15

def stub!
  @definition.any_number_of_times
  permissive_argument!
end