Sha256: e6b3d21229bfccdcd3f736d85b9539efbbdcc639ee6a5231cd595604e7578a9b
Contents?: true
Size: 1.13 KB
Versions: 2
Compression:
Stored size: 1.13 KB
Contents
require 'term/ansicolor' require 'open3' require 'Benchmark' module RakeCheck module Checker ## # Abstractclass for all Checker class Base include Term::ANSIColor attr_reader :check_output, :time, :options, :short_message def initialize(options = {}) @options = options end def status "(#{@time} sec): " + (success? ? "OK".green : "FAILED".red) + " " + short_message.to_s end def success? @status && @status.success? end # overwrite if needed def type self.class.name.split("::").last end private def handle_error(e) @status = OpenStruct.new(success?: false) @short_message = e.message @check_output = e.backtrace.unshift('Backtrace:'.bold.cyan). unshift("Error: ".bold.red + e.message).join("\n") end def run_command(*commands) @time = Benchmark.measure do begin @check_output, @status = Open3.capture2e *commands rescue Errno::ENOENT => e handle_error(e) end end.total.round(2) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rake_check-0.4.0 | lib/rake_check/checker/base.rb |
rake_check-0.3.6 | lib/rake_check/checker/base.rb |