Module: Evidence

Defined in:
lib/evidence.rb,
lib/evidence/stream.rb,
lib/evidence/log_parser.rb,
lib/evidence/rails_action_parser.rb,
lib/evidence/littles_law_analysis.rb

Defined Under Namespace

Classes: ArrayStream, Counter, FileStream, LittlesLawAnalysis, LogParser, MergedStream, RailsActionParser, Stream

Class Method Summary collapse

Class Method Details

.counterObject



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

def counter
  Counter.new
end

.default_unmatched_processorObject



48
49
50
# File 'lib/evidence.rb', line 48

def default_unmatched_processor
  lambda {|log| }
end

.littles_law_analysis(time_window) ⇒ Object



44
45
46
# File 'lib/evidence.rb', line 44

def littles_law_analysis(time_window)
  LittlesLawAnalysis.new(time_window)
end

.log_parser(pattern, unmatched = default_unmatched_processor) ⇒ Object



36
37
38
# File 'lib/evidence.rb', line 36

def log_parser(pattern, unmatched=default_unmatched_processor)
  LogParser.new(pattern, unmatched)
end

.merge_streams(streams, comparator) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/evidence.rb', line 23

def merge_streams(streams, comparator)
  loop do
    s1 = streams.shift
    return s1 if streams.empty?
    s2 = streams.shift
    streams << MergedStream.new([s1, s2], comparator)
  end
end

.rails_action_parser(pid, message, unmatched = default_unmatched_processor) ⇒ Object



40
41
42
# File 'lib/evidence.rb', line 40

def rails_action_parser(pid, message, unmatched=default_unmatched_processor)
  RailsActionParser.new(pid, message, unmatched)
end

.stream(obj, processor = nil) ⇒ Object

A stream is an Enumerable with a processor processing the data comming from upstream and yield to downstream



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/evidence.rb', line 11

def stream(obj, processor=nil)
  up_stream = case obj
  when Array
    ArrayStream.new(obj)
  when File
    FileStream.new(obj)
  else
    obj
  end
  Stream.new(up_stream, processor || lambda {|b| b})
end