Class: Solargraph::Rspec::Correctors::ImplicitSubjectMethodCorrector

Inherits:
Base
  • Object
show all
Defined in:
lib/solargraph/rspec/correctors/implicit_subject_method_corrector.rb

Overview

Defines let-like methods in the example group block

Instance Attribute Summary collapse

Attributes inherited from Base

#namespace_pins

Instance Method Summary collapse

Constructor Details

#initialize(namespace_pins:, described_class_pin:) ⇒ ImplicitSubjectMethodCorrector

Returns a new instance of ImplicitSubjectMethodCorrector.

Parameters:

  • namespace_pins (Array<Pin::Namespace>)
  • described_class_pin (Pin::Method)


15
16
17
18
19
# File 'lib/solargraph/rspec/correctors/implicit_subject_method_corrector.rb', line 15

def initialize(namespace_pins:, described_class_pin:)
  super(namespace_pins: namespace_pins)

  @described_class_pin = described_class_pin
end

Instance Attribute Details

#described_class_pinPin::Method (readonly)

Returns:

  • (Pin::Method)


11
12
13
# File 'lib/solargraph/rspec/correctors/implicit_subject_method_corrector.rb', line 11

def described_class_pin
  @described_class_pin
end

Instance Method Details

#correct(_source_map) {|[implicit_subject_pin(described_class_pin, namespace_pin)]| ... } ⇒ void

This method returns an undefined value.

Parameters:

  • source_map (Solargraph::SourceMap)

Yields:



23
24
25
26
27
# File 'lib/solargraph/rspec/correctors/implicit_subject_method_corrector.rb', line 23

def correct(_source_map)
  namespace_pin = closest_namespace_pin(namespace_pins, described_class_pin.location.range.start.line)

  yield [implicit_subject_pin(described_class_pin, namespace_pin)] if block_given? && namespace_pin
end