class AdvancedRubyCommandHandler::Logger

Constants

COLORS
MODES

Attributes

mode[R]
write_targets[RW]

Public Class Methods

new(mode = :console, write_targets = { :errors => "logs/errors.txt", :informations => "logs/infos.txt" }) click to toggle source
# File lib/advanced_ruby_command_handler/app/logger.rb, line 29
def initialize(mode = :console, write_targets = { :errors => "logs/errors.txt", :informations => "logs/infos.txt" })
  @mode = mode.to_sym
  @write_targets = write_targets if @mode == :file
end

Public Instance Methods

write(message, write_target = :informations) click to toggle source
# File lib/advanced_ruby_command_handler/app/logger.rb, line 38
def write(message, write_target = :informations)
  return Logger.new(:console).warn("The file logs aren't available on #{@mode} mode") unless @mode == :file

  time = Time.now.strftime("%Y-%m-%d-%H:%M:%S")

  FileUtils.mkdir_p File.dirname @write_targets[write_target]

  File.open(@write_targets[write_target], "w") unless File.exist? @write_targets[write_target]

  File.open(@write_targets[write_target], "a+") do |file|
    file.write("#{time} - #{write_target.to_s.upcase} : #{message}\n")
  end
end

Private Instance Methods

console_color(color, message) click to toggle source
# File lib/advanced_ruby_command_handler/app/logger.rb, line 34
def console_color(color, message)
  "#{COLORS[color]}#{message}\e[0m"
end