Class: Epilog::MockLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/epilog/mock_logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(**options) ⇒ MockLogger

Returns a new instance of MockLogger.



5
6
7
8
# File 'lib/epilog/mock_logger.rb', line 5

def initialize(**options)
  super(nil, **options)
  reset
end

Instance Method Details

#[](index) ⇒ Object



31
32
33
# File 'lib/epilog/mock_logger.rb', line 31

def [](index)
  @logs[index].dup || []
end

#add(severity, message = nil, progname = nil) ⇒ Object Also known as: log



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/epilog/mock_logger.rb', line 10

def add(severity, message = nil, progname = nil)
  severity ||= Logger::UNKNOWN
  return true if severity < level

  prog ||= progname
  if message.nil?
    if block_given?
      message = yield
    else
      message = prog
      prog = progname
    end
  end

  write(format_severity(severity), current_time, prog, message)
end

#freeze_time(time) ⇒ Object



39
40
41
# File 'lib/epilog/mock_logger.rb', line 39

def freeze_time(time)
  @time = time
end

#pop_contextObject



58
59
60
# File 'lib/epilog/mock_logger.rb', line 58

def pop_context
  @context.pop
end

#push_context(context) ⇒ Object



54
55
56
# File 'lib/epilog/mock_logger.rb', line 54

def push_context(context)
  @context << context
end

#reopen(_logdev = nil) ⇒ Object



28
29
# File 'lib/epilog/mock_logger.rb', line 28

def reopen(_logdev = nil)
end

#resetObject



43
44
45
46
# File 'lib/epilog/mock_logger.rb', line 43

def reset
  @logs = []
  @context = []
end

#to_aObject



35
36
37
# File 'lib/epilog/mock_logger.rb', line 35

def to_a
  (0...@logs.size).map { |i| self[i] }
end

#with_context(context) ⇒ Object



48
49
50
51
52
# File 'lib/epilog/mock_logger.rb', line 48

def with_context(context)
  push_context(context)
  yield
  pop_context
end