Class: Snoopit::NotificationManager

Inherits:
Object
  • Object
show all
Defined in:
lib/snoopit/notification_manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = nil) ⇒ NotificationManager

Returns a new instance of NotificationManager.



7
8
9
10
11
# File 'lib/snoopit/notification_manager.rb', line 7

def initialize(config=nil)
  @active = {}
  @config = config
  load_default_notifiers unless @config.nil?
end

Instance Attribute Details

#activeObject (readonly)

Returns the value of attribute active.



5
6
7
# File 'lib/snoopit/notification_manager.rb', line 5

def active
  @active
end

Instance Method Details

#get_notifier(name) ⇒ Object



34
35
36
# File 'lib/snoopit/notification_manager.rb', line 34

def get_notifier(name)
  @active[name]
end

#load_notifier_config(config) ⇒ Object



13
14
15
16
17
18
# File 'lib/snoopit/notification_manager.rb', line 13

def load_notifier_config(config)
  @config = config
  load_default_notifiers
  load = @config['load']
  load_files(load) unless load.nil?
end

#notify(snoopies) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/snoopit/notification_manager.rb', line 38

def notify(snoopies)
  snoopies.each do |snoopy|
    snoopy.sniffers.each do |sniffer|
      sniffer_notify(sniffer)
    end
  end
end

#register(notifier) ⇒ Object



20
21
22
23
24
# File 'lib/snoopit/notification_manager.rb', line 20

def register(notifier)
  raise NameError.new "Notifier missing valid name: #{notifier.inspect}" if notifier.name.nil?
  Snoopit.logger.debug "Registering notifier #{notifier.name}"
  @active[notifier.name] = notifier
end

#sniffer_notify(sniffer) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/snoopit/notification_manager.rb', line 46

def sniffer_notify(sniffer)
  messages = get_sniffed_messages sniffer
  sniffer.notifiers.each do |key, value|
    n = @active[key]
    next if n.nil?
    messages.each do |message|
      n.notify(message, value)
    end
  end
end

#unregister(notifier) ⇒ Object



26
27
28
# File 'lib/snoopit/notification_manager.rb', line 26

def unregister(notifier)
  self.unregister_by_name notifier.name
end

#unregister_by_name(notifier_name) ⇒ Object



30
31
32
# File 'lib/snoopit/notification_manager.rb', line 30

def unregister_by_name(notifier_name)
  @active.delete notifier_name
end