Module: Bovem::ConsoleMethods::Logging

Extended by:
ActiveSupport::Concern
Included in:
Bovem::Console
Defined in:
lib/bovem/console.rb

Overview

Methods for logging activities to the user.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#begin(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true) ⇒ Object

Writes a message prepending a green banner.

See Also:

  • #format


345
346
347
348
349
# File 'lib/bovem/console.rb', line 345

def begin(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true)
  banner = self.get_banner("*", "bright green")
  message = self.indent(message, indented_banner ? 0 : indent)
  self.write(banner + " " + message, suffix, indented_banner ? indent : 0, wrap, plain, print)
end

#debug(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true) ⇒ Object

Writes a message prepending a magenta banner.

See Also:

  • #format


402
403
404
# File 'lib/bovem/console.rb', line 402

def debug(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true)
  self.info(message, suffix, indent, wrap, plain, indented_banner, full_colored, print, ["D", "bright magenta"])
end

#error(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true) ⇒ Object

Writes a message prepending a red banner.

See Also:

  • #format


435
436
437
# File 'lib/bovem/console.rb', line 435

def error(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true)
  self.info(message, suffix, indent, wrap, plain, indented_banner, full_colored, print, "E", "bright red")
end

#fatal(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, return_code = -1,, print = true) ⇒ Object

Writes a message prepending a red banner and then quits the application.

See Also:

  • #format


364
365
366
367
# File 'lib/bovem/console.rb', line 364

def fatal(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, return_code = -1, print = true)
  self.error(message, suffix, indent, wrap, plain, indented_banner, full_colored, print)
  Kernel.exit(return_code.to_integer(-1))
end

#get_banner(label, base_color, full_colored = false, bracket_color = "blue", brackets = ["[", "]"]) ⇒ String

Gets a banner for the messages.

See Also:

  • #format


326
327
328
329
330
331
# File 'lib/bovem/console.rb', line 326

def get_banner(label, base_color, full_colored = false, bracket_color = "blue", brackets = ["[", "]"])
  label = label.rjust(Bovem::Console.min_banner_length, " ")
  brackets = brackets.ensure_array
  bracket_color = base_color if full_colored
  "{mark=%s}%s{mark=%s}%s{/mark}%s{/mark}" % [bracket_color.parameterize, brackets[0], base_color.parameterize, label, brackets[1]]
end

#info(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true, *banner) ⇒ Object

Writes a message prepending a cyan banner.

See Also:

  • #format


382
383
384
385
386
387
388
# File 'lib/bovem/console.rb', line 382

def info(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true, *banner)
  banner = banner.ensure_array.flatten
  banner = ["I", "bright cyan"] if banner.blank?
  banner = self.get_banner(banner[0], banner[1], full_colored)
  message = self.indent(message, indented_banner ? 0 : indent)
  self.write(banner + " " + message, suffix, indented_banner ? indent : 0, wrap, plain, print)
end

#status(status, plain = false, go_up = true, right = true, print = true) ⇒ Array

Writes a status to the output. Valid values are :ok, :pass, :fail, :warn.



293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
# File 'lib/bovem/console.rb', line 293

def status(status, plain = false, go_up = true, right = true, print = true)
  statuses = {
    ok: {label: " OK ", color: "bright green"},
    pass: {label: "PASS", color: "bright cyan"},
    warn: {label: "WARN", color: "bright yellow"},
    fail: {label: "FAIL", color: "bright red"}
  }
  statuses.default = statuses[:ok]

  rv = statuses[status]

  if print then
    banner = self.get_banner(rv[:label], rv[:color])

    if right then
      Kernel.puts self.format_right(banner + " ", true, go_up, plain)
    else
      Kernel.puts self.format(banner + " ", "\n", true, true, plain)
    end
  end

  rv
end

#warn(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true) ⇒ Object

Writes a message prepending a yellow banner.

See Also:

  • #format


418
419
420
421
# File 'lib/bovem/console.rb', line 418

def warn(message, suffix = "\n", indent = true, wrap = false, plain = false, indented_banner = false, full_colored = false, print = true)
  warn_banner = ["W", "bright yellow"]
  self.info(message, suffix, indent, wrap, plain, indented_banner, full_colored, print, warn_banner)
end

#write(message, suffix = "\n", indent = true, wrap = false, plain = false, print = true) ⇒ String

Writes a message.

See Also:

  • #format


264
265
266
267
268
# File 'lib/bovem/console.rb', line 264

def write(message, suffix = "\n", indent = true, wrap = false, plain = false, print = true)
  rv = self.format(message, suffix, indent, wrap, plain)
  Kernel.puts(rv) if print
  rv
end

#write_banner_aligned(message, suffix = "\n", indent = true, wrap = false, plain = false, print = true) ⇒ String

Writes a message, aligning to a call with an empty banner.

See Also:

  • #format


281
282
283
# File 'lib/bovem/console.rb', line 281

def write_banner_aligned(message, suffix = "\n", indent = true, wrap = false, plain = false, print = true)
  self.write((" " * (::Bovem::Console.min_banner_length + 3)) + message.ensure_string, suffix, indent, wrap, plain, print)
end