Class: Message::Recorder::Collector

Inherits:
Array show all
Defined in:
lib/message-recorder/collector.rb

Overview

The Collector stores all the callchains.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Array

#each_play

Constructor Details

#initialize(options = {}) ⇒ Collector

:nodoc:



28
29
30
31
32
# File 'lib/message-recorder/collector.rb', line 28

def initialize(options={}) # :nodoc:
  super(options[:array]) unless options[:array].nil?
  push ::Message::Recorder::Chain.new if self.empty?
  self.recorder = options[:recorder]
end

Instance Attribute Details

#recorder ⇒ Object

:nodoc:



26
27
28
# File 'lib/message-recorder/collector.rb', line 26

def recorder
  @recorder
end

Instance Method Details

#branch ⇒ Object

:nodoc:



48
49
50
# File 'lib/message-recorder/collector.rb', line 48

def branch # :nodoc:
  self.deep_copy
end

#collect_messages ⇒ Object

:nodoc:



34
35
36
# File 'lib/message-recorder/collector.rb', line 34

def collect_messages # :nodoc:
  ::Message::Recorder::ChainingMock.new(self.recorder, self)
end

#deep_copy ⇒ Object

:nodoc:



52
53
54
# File 'lib/message-recorder/collector.rb', line 52

def deep_copy # :nodoc:
  ::Message::Recorder::Collector.new(:array => collect { |chain| chain.dup }, :recorder => self.recorder)
end

#record(message) ⇒ Object

record a message object on all callchains.



44
45
46
# File 'lib/message-recorder/collector.rb', line 44

def record(message)
  each { |chain| chain.record(message) }
end

#record_message(m, *args, &block) ⇒ Object

record a message on all callchains.



39
40
41
# File 'lib/message-recorder/collector.rb', line 39

def record_message(m, *args, &block)
  record ::Message::Recorder::Message.new(m, args, block)
end

#send_to(subject, recorder) ⇒ Object

:nodoc:



56
57
58
59
60
# File 'lib/message-recorder/collector.rb', line 56

def send_to(subject, recorder) # :nodoc:
  results = ::Array.new
  each { |chain| results << chain.send_to(subject, recorder) }
  results
end