Module: RSpec::Sorbet::Doubles

Extended by:
T::Helpers, T::Sig
Included in:
RSpec::Sorbet
Defined in:
lib/rspec/sorbet/doubles.rb

Instance Method Summary collapse

Instance Method Details

#allow_doubles!Object Also known as: allow_instance_doubles!



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/rspec/sorbet/doubles.rb', line 15

def allow_doubles!
  reset! if configured

  self.existing_inline_type_error_handler = T::Configuration.instance_variable_get(
    :@inline_type_error_handler,
  )
  T::Configuration.inline_type_error_handler = proc do |error|
    inline_type_error_handler(error)
  end

  self.existing_call_validation_error_handler = T::Configuration.instance_variable_get(
    :@call_validation_error_handler,
  )
  T::Configuration.call_validation_error_handler = proc do |signature, opts|
    call_validation_error_handler(signature, opts)
  end

  self.configured = true
end

#reset!(clear_existing: false) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/rspec/sorbet/doubles.rb', line 36

def reset!(clear_existing: false)
  if clear_existing
    self.existing_inline_type_error_handler = nil
    self.existing_call_validation_error_handler = nil
  end

  T::Configuration.instance_variable_set(
    :@inline_type_error_handler,
    existing_inline_type_error_handler,
  )
  T::Configuration.instance_variable_set(
    :@call_validation_error_handler,
    existing_call_validation_error_handler,
  )

  self.configured = false
end