Class: Legion::CLI::Doctor::ExtensionsCheck

Inherits:
Object
  • Object
show all
Defined in:
lib/legion/cli/doctor/extensions_check.rb

Instance Method Summary collapse

Instance Method Details

#nameObject



7
8
9
# File 'lib/legion/cli/doctor/extensions_check.rb', line 7

def name
  'Extensions'
end

#runObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/legion/cli/doctor/extensions_check.rb', line 11

def run
  configured = configured_extensions
  return Result.new(name: name, status: :skip, message: 'No extensions configured') if configured.empty?

  missing = []
  load_errors = []

  configured.each do |ext_name|
    gem_name = ext_name.start_with?('lex-') ? ext_name : "lex-#{ext_name}"
    Gem::Specification.find_by_name(gem_name)
    begin
      require gem_name.tr('-', '/')
    rescue LoadError => e
      load_errors << "#{gem_name}: #{e.message}"
    end
  rescue Gem::MissingSpecError
    missing << gem_name
  end

  build_result(configured, missing, load_errors)
end