lib/spandx/cli/commands/scan.rb in spandx-0.13.2 vs lib/spandx/cli/commands/scan.rb in spandx-0.13.3
- old
+ new
@@ -2,69 +2,55 @@
module Spandx
module Cli
module Commands
class Scan
- NULL_BAR = Class.new do
- def advance(*args); end
- end.new
+ attr_reader :scan_path, :spinner
- attr_reader :scan_path
-
def initialize(scan_path, options)
@scan_path = ::Pathname.new(scan_path)
@options = options
+ @spinner = options[:show_progress] ? ::Spandx::Core::Spinner.new : ::Spandx::Core::Spinner::NULL
require(options[:require]) if options[:require]
end
def execute(output: $stdout)
- Spandx::Core::ThreadPool.open do |pool|
- report = ::Spandx::Core::Report.new
- each_file do |file|
- each_dependency_from(file, pool) do |dependency|
- report.add(dependency)
- end
+ report = ::Spandx::Core::Report.new
+ each_file do |file|
+ spinner.spin(file)
+ each_dependency_from(file) do |dependency|
+ spinner.spin(file)
+ report.add(dependency)
end
- output.puts(format(report.to(@options[:format])))
end
+ spinner.stop
+ output.puts(format(report.to(@options[:format])))
end
private
def each_file
Spandx::Core::PathTraversal
.new(scan_path, recursive: @options['recursive'])
.each { |file| yield file }
end
- def each_dependency_from(file, pool)
- dependencies = ::Spandx::Core::Parser.for(file).parse(file)
- with_progress(title_for(file), dependencies.size) do |bar|
- ::Spandx::Core::Concurrent
- .map(dependencies, pool: pool) { |dependency| enhance(dependency) }
- .each do |dependency|
- bar.advance(1)
- yield dependency
- end
- end
+ def each_dependency_from(file)
+ ::Spandx::Core::Parser
+ .for(file)
+ .parse(file)
+ .map { |x| enhance(x) }
+ .each { |dependency| yield dependency }
end
def format(output)
Array(output).map(&:to_s)
end
def enhance(dependency)
::Spandx::Core::Plugin
.all
.inject(dependency) { |memo, plugin| plugin.enhance(memo) }
- end
-
- def title_for(file)
- "#{file} [:bar, :elapsed] :percent"
- end
-
- def with_progress(title, total)
- yield @options[:show_progress] ? TTY::ProgressBar.new(title, total: total) : NULL_BAR
end
end
end
end
end