Module: Spoom::Deadcode

Extended by:
T::Sig
Defined in:
lib/spoom/deadcode.rb,
lib/spoom/deadcode/erb.rb,
lib/spoom/deadcode/send.rb,
lib/spoom/deadcode/index.rb,
lib/spoom/deadcode/indexer.rb,
lib/spoom/deadcode/location.rb,
lib/spoom/deadcode/reference.rb,
lib/spoom/deadcode/definition.rb

Defined Under Namespace

Classes: Definition, ERB, Error, Index, Indexer, IndexerError, Location, ParserError, Reference, Send

Class Method Summary collapse

Class Method Details

.index_erb(index, erb, file:) ⇒ Object



49
50
51
52
# File 'lib/spoom/deadcode.rb', line 49

def index_erb(index, erb, file:)
  ruby = ERB.new(erb).src
  index_ruby(index, ruby, file: file)
end

.index_ruby(index, ruby, file:) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/spoom/deadcode.rb', line 38

def index_ruby(index, ruby, file:)
  node = SyntaxTree.parse(ruby)
  visitor = Spoom::Deadcode::Indexer.new(file, ruby, index)
  visitor.visit(node)
rescue SyntaxTree::Parser::ParseError => e
  raise ParserError.new("Error while parsing #{file} (#{e.message} at #{e.lineno}:#{e.column})", parent: e)
rescue => e
  raise IndexerError.new("Error while indexing #{file} (#{e.message})", parent: e)
end