Class: Console::Capture

Inherits:
Object
  • Object
show all
Defined in:
lib/console/capture.rb

Overview

A general sink which captures all events into a buffer.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeCapture

Returns a new instance of Capture.



28
29
30
# File 'lib/console/capture.rb', line 28

def initialize
  @buffer = []
end

Instance Attribute Details

#bufferObject (readonly)

Returns the value of attribute buffer.



32
33
34
# File 'lib/console/capture.rb', line 32

def buffer
  @buffer
end

Instance Method Details

#call(subject = nil, *arguments, severity: UNKNOWN, **options, &block) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/console/capture.rb', line 49

def call(subject = nil, *arguments, severity: UNKNOWN, **options, &block)
  message = {
    time: ::Time.now.iso8601,
    severity: severity,
    **options,
  }
  
  if subject
    message[:subject] = subject
  end
  
  if arguments.any?
    message[:arguments] = arguments
  end
  
  if block_given?
    if block.arity.zero?
      message[:message] = yield
    else
      buffer = StringIO.new
      yield buffer
      message[:message] = buffer.string
    end
  end
  
  @buffer << message
end

#clearObject



42
43
44
# File 'lib/console/capture.rb', line 42

def clear
  @buffer.clear
end

#include?(pattern) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/console/capture.rb', line 38

def include?(pattern)
  JSON.dump(@buffer).include?(pattern)
end

#lastObject



34
35
36
# File 'lib/console/capture.rb', line 34

def last
  @buffer.last
end

#verbose!(value = true) ⇒ Object



46
47
# File 'lib/console/capture.rb', line 46

def verbose!(value = true)
end