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