lib/leftovers.rb in leftovers-0.2.3 vs lib/leftovers.rb in leftovers-0.3.0
- old
+ new
@@ -5,19 +5,19 @@
require_relative './leftovers/collector'
require_relative './leftovers/merged_config'
require_relative './leftovers/reporter'
module Leftovers # rubocop:disable Metrics/ModuleLength
+ class Error < StandardError; end
+ class ConfigError < Error; end
+
module_function
class << self
attr_accessor :parallel
alias_method :parallel?, :parallel
- attr_accessor :quiet
- alias_method :quiet?, :quiet
-
attr_accessor :progress
alias_method :progress?, :progress
end
def stdout
@@ -48,11 +48,10 @@
end
end
end
def run(stdout: StringIO.new, stderr: StringIO.new) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
- reset
@stdout = stdout
@stderr = stderr
return 0 if leftovers.empty?
only_test = []
@@ -85,45 +84,51 @@
remove_instance_variable(:@leftovers) if defined?(@leftovers)
remove_instance_variable(:@try_require) if defined?(@try_require)
remove_instance_variable(:@stdout) if defined?(@stdout)
remove_instance_variable(:@stderr) if defined?(@stderr)
remove_instance_variable(:@parallel) if defined?(@parallel)
- remove_instance_variable(:@quiet) if defined?(@quiet)
remove_instance_variable(:@pwd) if defined?(@pwd)
end
def warn(message)
- stderr.puts("\e[2K#{message}") unless quiet?
+ stderr.puts("\e[2K#{message}")
end
def puts(message)
- stdout.puts("\e[2K#{message}") unless quiet?
+ stdout.puts("\e[2K#{message}")
end
def print(message)
- stdout.print(message) unless quiet?
+ stdout.print(message)
end
def newline
stdout.puts('')
end
def pwd
@pwd ||= Pathname.new(Dir.pwd + '/')
end
- def try_require(*requirables, message: nil) # rubocop:disable Metrics/MethodLength
+ def exit(status = 0)
+ throw :leftovers_exit, status
+ end
+
+ def try_require(requirable, message: nil) # rubocop:disable Metrics/MethodLength
@try_require ||= {}
- requirables.each do |requirable|
- begin
- return @try_require[requirable] if @try_require.key?(requirable)
- @try_require[requirable] = require requirable
- rescue LoadError
- warn message if message
- @try_require[requirable] = false
+ @try_require[requirable] = begin
+ if @try_require.key?(requirable)
+ @try_require[requirable]
+ else
+ require requirable
+ true
end
+ rescue LoadError
+ false
end
+ warn message if !@try_require[requirable] && message
+ @try_require[requirable]
end
def each_or_self(value, &block)
case value
when nil then nil