lib/leftovers.rb in leftovers-0.11.2 vs lib/leftovers.rb in leftovers-0.12.0
- old
+ new
@@ -1,8 +1,16 @@
# frozen_string_literal: true
module Leftovers
+ class Exit < ::StandardError
+ attr_reader :status
+
+ def initialize(status) # rubocop:disable Lint/MissingSuper
+ @status = status
+ end
+ end
+
require_relative 'leftovers/autoloader'
include Autoloader
MEMOIZED_IVARS = %i{
@config
@@ -42,11 +50,11 @@
end
def error(message, did_you_mean = nil)
warn("\e[31m#{message}\e[0m")
warn("\n#{did_you_mean}") if did_you_mean
- exit 1
+ raise Exit, 1
end
def puts(message)
stdout.puts("\e[2K#{message}")
end
@@ -58,10 +66,10 @@
def pwd
@pwd ||= ::Pathname.new(::Dir.pwd + '/')
end
def exit(status = 0)
- throw :leftovers_exit, status
+ raise Exit, status
end
def try_require(requirable, message: nil)
warn message if !try_require_cache(requirable) && message
try_require_cache(requirable)