Sha256: 1600a65ac8e883b6fad0a2fbb63e54e268321cd3674d8ab3f259c2219e8c7881
Contents?: true
Size: 1.37 KB
Versions: 11
Compression:
Stored size: 1.37 KB
Contents
module EmberCli class BuildMonitor def initialize(name, paths) @name = name @paths = paths end def check! if has_build_errors? raise_build_error! end true end def reset if error_file_exists? error_file.delete end end def wait! loop do check! break if complete? sleep 0.1 end end private attr_reader :name, :paths def complete? !paths.lockfile.exist? end def error_file_exists? error_file.exist? && error_file.size? end def build_errors error_lines. reject { |line| is_blank_or_backtrace?(line) }. reject { |line| is_deprecation_warning?(line) } end def has_build_errors? build_errors.any? end def is_blank_or_backtrace?(line) line =~ /(^\s*$|^\s{4}at .+$)/ end def is_deprecation_warning?(line) line =~ /^(\e[^\s]+)?DEPRECATION:/ end def error_lines if error_file_exists? error_file.readlines else [""] end end def error_file paths.build_error_file end def raise_build_error! backtrace = build_errors.first message = "#{name.inspect} has failed to build: #{backtrace}" error = BuildError.new(message) error.set_backtrace(backtrace) fail error end end end
Version data entries
11 entries across 11 versions & 1 rubygems