Sha256: d1ee2545a350ef1a0c968c89712336645e3dfa12af7b19f44684958b5aff1903
Contents?: true
Size: 1.28 KB
Versions: 10
Compression:
Stored size: 1.28 KB
Contents
# frozen_string_literal: true require 'eac_ruby_utils/core_ext' require 'eac_ruby_utils/fs/logs' require 'eac_ruby_utils/listable' require 'eac_ruby_utils/on_clean_ruby_environment' module EacRubyGemsUtils module Tests class Base include ::EacRubyUtils::Listable enable_simple_cache lists.add_string :result, :failed, :nonexistent, :successful common_constructor :gem def elegible? dependency_present? && gem.root.join(test_directory).exist? end def dependency_present? gem.gemfile_path.exist? && gem.gemfile_lock_gem_version(dependency_gem).present? end def name self.class.name.demodulize.gsub(/Test\z/, '') end def to_s "#{gem}[#{name}]" end private def logs_uncached ::EacRubyUtils::Fs::Logs.new.add(:stdout).add(:stderr) end def result_uncached return RESULT_NONEXISTENT unless elegible? exec_run_with_log ? RESULT_SUCCESSFUL : RESULT_FAILED end def exec_run gem.bundle('exec', *bundle_exec_args).chdir_root.execute end def exec_run_with_log r = exec_run logs[:stdout].write(r[:stdout]) logs[:stderr].write(r[:stderr]) r[:exit_code].zero? end end end end
Version data entries
10 entries across 10 versions & 3 rubygems