Module: TTYCoke::Log

Included in:
CLI, Config, Parser
Defined in:
lib/ttycoke/log.rb

Instance Method Summary collapse

Instance Method Details

#log_check_child_exit_statusObject



72
73
74
75
76
77
78
79
80
81
82
# File 'lib/ttycoke/log.rb', line 72

def log_check_child_exit_status
  result = yield
  status = $? || 0
  unless [0,172].include?(status)
    raise ArgumentError
    log_error(self, __method__, caller, e,
        {status: status}) unless $TEST
    exit e.respond_to?(:status_code) ? e.status_code : Errno::ENOENT::Errno
  end
  result
end

#log_debug(cls, mth, cllr, file, line, ivrs = {}, lvrs = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/ttycoke/log.rb', line 29

def log_debug cls, mth, cllr, file, line, ivrs={}, lvrs={}
  # return unless $TEST
  msg = "#{cls.class.name}##{mth}".magenta     +
    "\nCaller => " + "#{cllr[0][/`.*'/][1..-2]}".green +
    "\n---Instance Vars---"
  ivrs.each { |v| msg += "#{v}=".yellow  + eval("#{v}") }
  msg += "\n---local Vars---"
  lvrs.each { |v| msg += "#{v}=".yellow  + eval("#{v}") }
  msg += "\n#{file}:#{line}"
  @@logger.debug(msg)
end

#log_error(cls, mthd, cllr, e, vars = {}) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/ttycoke/log.rb', line 41

def log_error cls, mthd, cllr, e, vars={}
  # return unless $TEST
  status_code = e.status_code if e.respond_to?(:status_code)
  msg = "#{cls.class.name}##{mthd}".magenta     +
    "\nCaller => " + "#{cllr[0][/`.*'/][1..-2]}".green        +
    "\ne.inspect: " + "#{e.inspect}".green                    +
    "\ne.message: " + "#{e.message}".green                    +
    "\ne.status_code: " + "#{status_code}".green              +
    "\n---backtrace---\n"                                     +
    "#{e.backtrace.join("\n")}"                               +
    "\n---Vars---"
  vars.each { |name, value| msg += "\n#{name}: ".yellow + " #{value}" }
  @@logger.error(msg)
end

#log_rescue(cls, mthd, cllr, ex_type = nil, vars = {}) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/ttycoke/log.rb', line 56

def log_rescue cls, mthd, cllr, ex_type=nil, vars={}
  begin
    result = yield
    status = $? || 0
  rescue Exception => e
    log_error(cls, mthd, cllr, e, vars.merge(status: status)) unless $TEST
    if ex_type
      raise ex_type.new(e)
    else
      raise TTYCoke::Errors::TTYCokeError.new(e)
    end
    exit e.status_code if e.respond_to?(:status_code)
  end
  result
end