Class: LogDecorator::LogProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/log_decorator/log_proxy.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, separator) ⇒ LogProxy

Returns a new instance of LogProxy.



30
31
32
33
34
35
36
# File 'lib/log_decorator/log_proxy.rb', line 30

def initialize(klass, separator)
  self.class.initialize_log_levels
  @klass     = klass
  @separator = separator
  @prefix    = LogDecorator.prefix
  @logger    = LogDecorator.logger
end

Instance Attribute Details

#loggerObject

Returns the value of attribute logger.



3
4
5
# File 'lib/log_decorator/log_proxy.rb', line 3

def logger
  @logger
end

#prefixObject

Returns the value of attribute prefix.



3
4
5
# File 'lib/log_decorator/log_proxy.rb', line 3

def prefix
  @prefix
end

Class Method Details

.initialize_log_levelsObject

rubocop:disable AbcSize



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/log_decorator/log_proxy.rb', line 5

def self.initialize_log_levels # rubocop:disable AbcSize
  return if @log_levels_initialized
  @log_levels_initialized = true

  LogDecorator.log_levels.each do |level|
    define_method(level) do |msg = nil, &blk|
      return unless logger # rubocop:disable Lint/NonLocalExitFromIterator
      location = caller_locations(1, 1)
      if blk
        logger.send(level) do
          "#{@prefix.call(@klass, @separator, location)} #{blk.call}"
        end
      else
        logger.send(level, "#{@prefix.call(@klass, @separator, location)} #{msg}")
      end
    end

    level_bool = :"#{level}?"
    define_method(level_bool) do
      return unless logger # rubocop:disable Lint/NonLocalExitFromIterator
      logger.send(level_bool)
    end
  end
end

Instance Method Details

#levelObject



38
39
40
# File 'lib/log_decorator/log_proxy.rb', line 38

def level
  logger.level if logger
end

#level=(level) ⇒ Object



42
43
44
# File 'lib/log_decorator/log_proxy.rb', line 42

def level=(level)
  logger.level = level if logger
end

#log_backtraceObject



46
47
48
# File 'lib/log_decorator/log_proxy.rb', line 46

def log_backtrace
  logger.log_backtrace if logger
end