Class: Hallmonitor::Outputter

Inherits:
Object
  • Object
show all
Defined in:
lib/hallmonitor/outputter.rb

Constant Summary collapse

@@outputters =
Array.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Outputter

Returns a new instance of Outputter.

Raises:

  • (ArgumentError)


6
7
8
9
# File 'lib/hallmonitor/outputter.rb', line 6

def initialize(name)
  raise(ArgumentError, "Outputter expects a name") if name.nil?
  @name = name
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/hallmonitor/outputter.rb', line 3

def name
  @name
end

Class Method Details

.add_outputter(outputter) ⇒ Object

Adds an outputter. Outputters are required to respond to :process



19
20
21
# File 'lib/hallmonitor/outputter.rb', line 19

def self.add_outputter(outputter)
  @@outputters << outputter if outputter.respond_to?(:process)
end

.output(event) ⇒ Object

Outputs the event via each configured outputter

Parameters:

  • event (Event)

    The event to output



25
26
27
28
29
# File 'lib/hallmonitor/outputter.rb', line 25

def self.output(event)
  @@outputters.each do |o|
    o.process(event)
  end
end

.outputtersObject

Returns the current list of outputters

Returns:

  • (Object)

    Outputters



13
14
15
# File 'lib/hallmonitor/outputter.rb', line 13

def self.outputters
  @@outputters
end

Instance Method Details

#process(event) ⇒ Object

Processes and event. Child classes should implement this to output events

Parameters:

  • event (Event)

    the event to process



33
34
35
# File 'lib/hallmonitor/outputter.rb', line 33

def process(event)
  # Nothing
end