Class: Solargraph::Rspec::RSpecConfigure

Inherits:
Object
  • Object
show all
Defined in:
lib/solargraph/rspec/rspec_configure.rb

Overview

Handles RSpec.configure ... config.include parsing Provides pins for modules included globally via RSpec.configure

Instance Method Summary collapse

Constructor Details

#initialize(config:, root_namespace_pin:) ⇒ RSpecConfigure

Returns a new instance of RSpecConfigure.

Parameters:

  • config (Config)
  • root_namespace_pin (Solargraph::Pin::Namespace)


13
14
15
16
17
# File 'lib/solargraph/rspec/rspec_configure.rb', line 13

def initialize(config:, root_namespace_pin:)
  @config = config
  @root_namespace_pin = root_namespace_pin
  @included_modules = nil
end

Instance Method Details

#extra_requiresArray<String>

Returns:

  • (Array<String>)


31
32
33
# File 'lib/solargraph/rspec/rspec_configure.rb', line 31

def extra_requires
  included_modules.map(&:file).uniq + support_files
end

#included_modulesArray<SpecConfigurationWalker::IncludedModule>



36
37
38
# File 'lib/solargraph/rspec/rspec_configure.rb', line 36

def included_modules
  @included_modules ||= parse_included_modules
end

#pinsArray<Solargraph::Pin::Reference::Include>

Returns:

  • (Array<Solargraph::Pin::Reference::Include>)


20
21
22
23
24
25
26
27
28
# File 'lib/solargraph/rspec/rspec_configure.rb', line 20

def pins
  included_modules.map do |mod|
    Solargraph::Pin::Reference::Include.new(
      closure: @root_namespace_pin,
      name: mod.module_name,
      location: Solargraph::Location.new(mod.file, Solargraph::Parser.node_range(mod.node))
    )
  end
end