lib/spoom/deadcode.rb in spoom-1.3.2 vs lib/spoom/deadcode.rb in spoom-1.3.3

- old
+ new

@@ -2,86 +2,17 @@ # frozen_string_literal: true require "erubi" require "prism" -require_relative "deadcode/visitor" +require_relative "visitor" +require_relative "location" +require_relative "parse" + require_relative "deadcode/erb" require_relative "deadcode/index" require_relative "deadcode/indexer" -require_relative "deadcode/location" require_relative "deadcode/definition" -require_relative "deadcode/reference" require_relative "deadcode/send" require_relative "deadcode/plugins" require_relative "deadcode/remover" - -module Spoom - module Deadcode - class Error < Spoom::Error - extend T::Helpers - - abstract! - end - - class ParserError < Error; end - - class IndexerError < Error - extend T::Sig - - sig { params(message: String, parent: Exception).void } - def initialize(message, parent:) - super(message) - set_backtrace(parent.backtrace) - end - end - - class << self - extend T::Sig - - sig { params(ruby: String, file: String).returns(Prism::Node) } - def parse_ruby(ruby, file:) - result = Prism.parse(ruby) - unless result.success? - message = +"Error while parsing #{file}:\n" - - result.errors.each do |e| - message << "- #{e.message} (at #{e.location.start_line}:#{e.location.start_column})\n" - end - - raise ParserError, message - end - - result.value - end - - sig do - params( - index: Index, - node: Prism::Node, - ruby: String, - file: String, - plugins: T::Array[Deadcode::Plugins::Base], - ).void - end - def index_node(index, node, ruby, file:, plugins: []) - visitor = Spoom::Deadcode::Indexer.new(file, ruby, index, plugins: plugins) - visitor.visit(node) - rescue => e - raise IndexerError.new("Error while indexing #{file} (#{e.message})", parent: e) - end - - sig { params(index: Index, ruby: String, file: String, plugins: T::Array[Deadcode::Plugins::Base]).void } - def index_ruby(index, ruby, file:, plugins: []) - node = parse_ruby(ruby, file: file) - index_node(index, node, ruby, file: file, plugins: plugins) - end - - sig { params(index: Index, erb: String, file: String, plugins: T::Array[Deadcode::Plugins::Base]).void } - def index_erb(index, erb, file:, plugins: []) - ruby = ERB.new(erb).src - index_ruby(index, ruby, file: file, plugins: plugins) - end - end - end -end