Module: Rbcli::Msg

Defined in:
lib/rbcli/util/msg.rb

Class Method Summary collapse

Class Method Details

.err(message, log: false, color: :yellow) ⇒ Object



13
14
15
16
17
# File 'lib/rbcli/util/msg.rb', line 13

def self.err message, log: false, color: :yellow
  Rbcli::log.warn {message} if log
  message = message.colorize(color) if Rbcli::config[:colorize_output]
  STDERR.puts message
end

.fatal(message, log: true, color: :red, exitcode: 1) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/rbcli/util/msg.rb', line 19

def self.fatal message, log: true, color: :red, exitcode: 1
  Rbcli::log.fatal {"Exited with the message: " + message} if log
  message = "Error: #{message}"
  message = message.colorize(color) if Rbcli::config[:colorize_output]
  STDERR.puts message
  exit exitcode
end


2
3
4
5
# File 'lib/rbcli/util/msg.rb', line 2

def self.print message, log: false, color: nil
  Rbcli::log.info {message} if log
  STDOUT.print message
end

.puts(message, log: false, color: nil) ⇒ Object



7
8
9
10
11
# File 'lib/rbcli/util/msg.rb', line 7

def self.puts message, log: false, color: nil
  Rbcli::log.info {message} if log
  message = message.colorize(color) if Rbcli::config[:colorize_output]
  STDOUT.puts message
end

.triggered(msg, msg_success, msg_fail = nil, fatality_msg = nil, log: false, success_color: :green, fail_color: :red, newline: false, &block) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/rbcli/util/msg.rb', line 29

def self.triggered msg, msg_success, msg_fail = nil, fatality_msg = nil, log: false, success_color: :green, fail_color: :red, newline: false, &block
  @triggernests.times {msg = '  ' + msg}
  @triggernests += 1

  Rbcli::Msg.send ((newline) ? :puts : :print), msg
  result = yield
  @triggernests -= 1
  tmsg = (result or msg_fail.nil?) ? msg_success : msg_fail
  @triggernests.times {tmsg = '  ' + tmsg}
  tcol = (result or msg_fail.nil?) ? success_color : fail_color
  Rbcli::Msg.puts tmsg, log: log, color: tcol
  Rbcli::Msg.fatal fatality_msg, log: log if fatality_msg
end

.yesno(question, default_to_yes: false) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/rbcli/util/msg.rb', line 43

def self.yesno question, default_to_yes: false
  yes_display = (default_to_yes) ? 'Y' : 'y'
  no_display = (default_to_yes) ? 'n' : 'N'
  Rbcli::Msg.print "#{question} (#{yes_display}/#{no_display}): ", log: false
  if default_to_yes
    answer = !gets.chomp.casecmp('n').zero?
  else
    answer = gets.chomp.casecmp('y').zero?
  end
  Rbcli::log.info {"Question: #{question}. Answer: #{answer}"}
  answer
end