Class: Batsir::Notifiers::Notifier

Inherits:
Object
  • Object
show all
Defined in:
lib/batsir/notifiers/notifier.rb

Direct Known Subclasses

AMQPNotifier, ConditionalNotifier

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Notifier

Returns a new instance of Notifier.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/batsir/notifiers/notifier.rb', line 7

def initialize(options = {})
  fields = options.delete(:fields)

  options.each do |option, value|
    self.send("#{option}=", value)
  end
  @transformer_queue = []
  if fields
    add_transformer(Batsir::Transformers::FieldTransformer.new(:fields => fields))
  end
end

Instance Attribute Details

#field_mappingObject

Returns the value of attribute field_mapping.



4
5
6
# File 'lib/batsir/notifiers/notifier.rb', line 4

def field_mapping
  @field_mapping
end

#transformer_queueObject

Returns the value of attribute transformer_queue.



5
6
7
# File 'lib/batsir/notifiers/notifier.rb', line 5

def transformer_queue
  @transformer_queue
end

Instance Method Details

#add_transformer(transformer) ⇒ Object



19
20
21
# File 'lib/batsir/notifiers/notifier.rb', line 19

def add_transformer(transformer)
  @transformer_queue << transformer
end

#execute(message) ⇒ Object

Raises:

  • (NotImplementedError)


35
36
37
# File 'lib/batsir/notifiers/notifier.rb', line 35

def execute(message)
  raise NotImplementedError.new
end

#notify(message) ⇒ Object



23
24
25
26
# File 'lib/batsir/notifiers/notifier.rb', line 23

def notify(message)
  execute(transform(message.clone))
  message
end

#transform(message) ⇒ Object



28
29
30
31
32
33
# File 'lib/batsir/notifiers/notifier.rb', line 28

def transform(message)
  transformer_queue.each do |transformer|
    message = transformer.transform(message)
  end
  message
end