Sha256: a7aab4f59f62ce513bb4a462ee84dc0a2564360123b5f92040a7c74e7fbdde58
Contents?: true
Size: 1.24 KB
Versions: 1
Compression:
Stored size: 1.24 KB
Contents
module Eco module Language # Some modules/classes use logger, but they may not be connected to session. # This prevents errors with this. module AuxiliarLogger attr_writer :logger # Provides either an available logger or a basic one def logger if instance_variable_defined?(:@session) && !@session.nil? @session.logger elsif respond_to?(:session) session.logger elsif Object.const_defined?(:ASSETS) ASSETS.session.logger elsif defined?(super) super else @logger ||= Eco::Language::BasicLogger.new end end # Shortcut to logger. # @todo allow for more channels (atm it's just :general ) # @note when `:general` is included, it ensures at least # `:info` level is also logged. # @return [NilClass] def log(*levels, &block) return unless logger levels = levels.compact.uniq.map(&:to_sym) levels.unshift(:info) if levels.include?(:general) && levels.length == 1 levels.each do |level| next unless logger.respond_to?(:level) logger.send(level, &block) end nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
eco-helpers-3.0.21 | lib/eco/language/auxiliar_logger.rb |