lib/tryouts.rb
# lib/tryouts.rb require 'stringio' TRYOUTS_LIB_HOME = __dir__ unless defined?(TRYOUTS_LIB_HOME) require_relative 'tryouts/console' require_relative 'tryouts/testbatch' require_relative 'tryouts/version' require_relative 'tryouts/prism_parser' require_relative 'tryouts/cli' class Tryouts @debug = false @quiet = false @noisy = false @fails = false @container = Class.new @cases = [] # rubocop:disable ThreadSafety/MutableClassInstanceVariable @sysinfo = nil @testcase_io = StringIO.new module ClassMethods attr_accessor :container, :quiet, :noisy, :fails attr_writer :debug attr_reader :cases, :testcase_io def sysinfo require 'sysinfo' @sysinfo ||= SysInfo.new @sysinfo end def debug? @debug == true end def update_load_path(lib_glob) Dir.glob(lib_glob).each { |dir| $LOAD_PATH.unshift(dir) } end def trace(msg, indent: 0) return unless debug? prefix = (' ' * indent) + Console.color(:dim, 'TRACE') warn "#{prefix} #{msg}" end end extend ClassMethods end