Module: Notifies

Defined in:
lib/notifies.rb,
lib/notifies/growl.rb,
lib/notifies/notification_center.rb

Defined Under Namespace

Classes: Error, Growl, NotificationCenter, UnknownNotifierError

Constant Summary collapse

VERSION =
'0.1.0'
NOTIFIERS =
{}
@@enabled =
true

Class Method Summary collapse

Class Method Details

.enabled=(enabled) ⇒ Object



55
56
57
# File 'lib/notifies.rb', line 55

def self.enabled= enabled
  @@enabled = !!enabled
end

.enabled?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/notifies.rb', line 59

def self.enabled?
  @@enabled
end

.notifier(*args) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/notifies.rb', line 32

def self.notifier *args
  options = args.last.kind_of?(Hash) ? args.pop : {}

  if key = args.shift
    raise UnknownNotifierError.new(key.inspect) unless n = NOTIFIERS[key]
    return !options[:available] || n && n.available? ? n : nil
  end

  ordered_notifiers(options).each_pair do |key,notifier|
    return notifier if notifier.available?
  end

  nil
end

.notify(msg, options = {}) ⇒ Object



16
17
18
19
20
# File 'lib/notifies.rb', line 16

def self.notify msg, options = {}
  return false if !@@enabled or (options.key?(:enabled) and !options[:enabled])
  n = notifier options
  n ? n.notify(msg, options) : nil
end

.prefer(*keys) ⇒ Object



51
52
53
# File 'lib/notifies.rb', line 51

def self.prefer *keys
  NOTIFIERS.replace(ordered_notifiers(preferred: keys.flatten)).keys
end

.preferredObject



47
48
49
# File 'lib/notifies.rb', line 47

def self.preferred
  NOTIFIERS.keys
end

.register(key, notifier) ⇒ Object



63
64
65
66
# File 'lib/notifies.rb', line 63

def self.register key, notifier
  # TODO: test key override
  NOTIFIERS[key] = notifier
end

.register_defaultsObject



68
69
70
71
# File 'lib/notifies.rb', line 68

def self.register_defaults
  register :notification_center, Notifies::NotificationCenter
  register :growl, Notifies::Growl
end