lib/stealth/logger.rb in stealth-1.0.0.pre1 vs lib/stealth/logger.rb in stealth-1.0.0.pre2
- old
+ new
@@ -2,12 +2,48 @@
# frozen_string_literal: true
module Stealth
class Logger
+ COLORS = ::Hash[
+ black: 30,
+ red: 31,
+ green: 32,
+ yellow: 33,
+ blue: 34,
+ magenta: 35,
+ cyan: 36,
+ gray: 37,
+ ].freeze
+
+ def self.color_code(code)
+ COLORS.fetch(code) { raise(ArgumentError, "Color #{code} not supported.") }
+ end
+
+ def self.colorize(input, color:)
+ "\e[#{color_code(color)}m#{input}\e[0m"
+ end
+
def self.log(topic:, message:)
unless ENV['STEALTH_ENV'] == 'test'
- puts "[#{topic.upcase}] #{message}"
+ puts "#{print_topic(topic)} #{message}"
+ end
+ end
+
+ def self.print_topic(topic)
+ topic_string = "[#{topic}]"
+
+ case topic.to_sym
+ when :session
+ colorize(topic_string, color: :green)
+ when :previous_session
+ colorize(topic_string, color: :yellow)
+ when :facebook, :twilio
+ colorize(topic_string, color: :blue)
+ when :catch_all
+ colorize(topic_string, color: :red)
+ else
+ colorize(topic_string, color: :gray)
end
end
class << self
alias_method :l, :log