lib/leftovers.rb in leftovers-0.6.0 vs lib/leftovers.rb in leftovers-0.7.0

- old
+ new

@@ -4,15 +4,17 @@ class Error < ::StandardError; end autoload(:AST, "#{__dir__}/leftovers/ast") autoload(:CLI, "#{__dir__}/leftovers/cli") autoload(:Collector, "#{__dir__}/leftovers/collector") - autoload(:ConfigValidator, "#{__dir__}/leftovers/config_validator") + autoload(:ConfigLoader, "#{__dir__}/leftovers/config_loader") autoload(:Config, "#{__dir__}/leftovers/config") + autoload(:Definition, "#{__dir__}/leftovers/definition") autoload(:DefinitionNode, "#{__dir__}/leftovers/definition_node") + autoload(:DefinitionNodeSet, "#{__dir__}/leftovers/definition_node_set") autoload(:DefinitionSet, "#{__dir__}/leftovers/definition_set") - autoload(:Definition, "#{__dir__}/leftovers/definition") + autoload(:DefinitionToAdd, "#{__dir__}/leftovers/definition_to_add") autoload(:ERB, "#{__dir__}/leftovers/erb") autoload(:FileCollector, "#{__dir__}/leftovers/file_collector") autoload(:FileList, "#{__dir__}/leftovers/file_list") autoload(:File, "#{__dir__}/leftovers/file") autoload(:Haml, "#{__dir__}/leftovers/haml") @@ -29,10 +31,23 @@ autoload(:TodoReporter, "#{__dir__}/leftovers/todo_reporter") autoload(:DynamicProcessors, "#{__dir__}/leftovers/dynamic_processors") autoload(:ValueProcessors, "#{__dir__}/leftovers/value_processors") autoload(:VERSION, "#{__dir__}/leftovers/version") + MEMOIZED_IVARS = %i{ + @config + @collector + @reporter + @leftovers + @try_require_cache + @stdout + @stderr + @parallel + @pwd + @progress + }.freeze + class << self attr_accessor :parallel, :progress attr_writer :reporter alias_method :parallel?, :parallel alias_method :progress?, :progress @@ -80,20 +95,14 @@ end reporter.report(only_test: only_test, none: none) end - def reset # rubocop:disable Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity - remove_instance_variable(:@config) if defined?(@config) - remove_instance_variable(:@collector) if defined?(@collector) - remove_instance_variable(:@reporter) if defined?(@reporter) - remove_instance_variable(:@leftovers) if defined?(@leftovers) - remove_instance_variable(:@try_require_cache) if defined?(@try_require_cache) - remove_instance_variable(:@stdout) if defined?(@stdout) - remove_instance_variable(:@stderr) if defined?(@stderr) - remove_instance_variable(:@parallel) if defined?(@parallel) - remove_instance_variable(:@pwd) if defined?(@pwd) + def reset + MEMOIZED_IVARS.each do |ivar| + remove_instance_variable(ivar) if instance_variable_get(ivar) + end end def resolution_instructions_link "https://github.com/robotdana/leftovers/tree/v#{Leftovers::VERSION}/README.md#how-to-resolve" end @@ -101,11 +110,11 @@ def warn(message) stderr.puts("\e[2K#{message}") end def error(message) - warn(message) + warn("\e[31m#{message}\e[0m") exit 1 end def puts(message) stdout.puts("\e[2K#{message}") @@ -135,10 +144,10 @@ def each_or_self(value, &block) return enum_for(__method__, value) unless block case value when nil then nil - when Array then value.each(&block) + when Array then value.each { |i| each_or_self(i, &block) } else yield(value) end end private