Module: Eco::Language::AuxiliarLogger

Overview

Some modules/classes use logger, but they may not be connected to session. This prevents errors with this.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#loggerObject

Provides either an available logger or a basic one



9
10
11
12
13
14
15
16
# File 'lib/eco/language/auxiliar_logger.rb', line 9

def logger
  return @session.logger       if instance_variable_defined?(:@session) && !@session.nil?
  return send(:session).logger if respond_to?(:session, true) && !send(:session).nil?
  return ASSETS.session.logger if Object.const_defined?(:ASSETS)
  return super                 if defined?(super)

  @logger ||= Eco::Language::BasicLogger.new
end

Instance Method Details

#log(*levels, &block) ⇒ NilClass

TODO:

allow for more channels (atm it's just :general )

Note:

when :general is included, it ensures at least :info level is also logged.

Shortcut to logger.

Returns:

  • (NilClass)


23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/eco/language/auxiliar_logger.rb', line 23

def log(*levels, &block)
  return unless logger

  levels = levels.compact.uniq.map(&:to_sym)
  levels.unshift(:debug) if levels.include?(:general) && levels.length == 1

  levels.uniq.each do |level|
    next unless logger.respond_to?(:level, true)

    logger.send(level, &block)
  end

  nil
end