module Notifies
Constants
- NOTIFIERS
- VERSION
Public Class Methods
enabled=(enabled)
click to toggle source
# File lib/notifies.rb, line 55 def self.enabled= enabled @@enabled = !!enabled end
enabled?()
click to toggle source
# File lib/notifies.rb, line 59 def self.enabled? @@enabled end
notifier(*args)
click to toggle source
# 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 = {})
click to toggle source
# 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)
click to toggle source
# File lib/notifies.rb, line 51 def self.prefer *keys NOTIFIERS.replace(ordered_notifiers(preferred: keys.flatten)).keys end
preferred()
click to toggle source
# File lib/notifies.rb, line 47 def self.preferred NOTIFIERS.keys end
register(key, notifier)
click to toggle source
# File lib/notifies.rb, line 63 def self.register key, notifier # TODO: test key override NOTIFIERS[key] = notifier end
register_defaults()
click to toggle source
# File lib/notifies.rb, line 68 def self.register_defaults register :notification_center, Notifies::NotificationCenter register :growl, Notifies::Growl end
Private Class Methods
ordered_notifiers(options = {})
click to toggle source
# File lib/notifies.rb, line 75 def self.ordered_notifiers options = {} return NOTIFIERS unless options[:preferred] keys = [ options.delete(:preferred) ].flatten.uniq unknown_keys = keys.reject{ |k| NOTIFIERS[k] } raise UnknownNotifierError.new(unknown_keys.collect{ |k| k.inspect }.join(', ')) unless unknown_keys.empty? notifiers = NOTIFIERS.dup Hash.new.tap do |ordered| keys.each{ |k| ordered[k] = notifiers.delete k } notifiers.each_pair{ |k,v| ordered[k] = v } end end