Sha256: 10a08ab48525c0a0f2558c87caeec562f033f17f611e0f21ea7746ed09abf7b7
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
require "notiffany/notifier" require "guard/ui" module Guard class Notifier def self.connect(options = {}) @notifier ||= nil fail "Already connected!" if @notifier begin opts = options.merge(namespace: "guard", logger: UI) @notifier = Notiffany.connect(opts) rescue Notiffany::Notifier::Detected::UnknownNotifier => e UI.error "Failed to setup notification: #{e.message}" fail end end def self.disconnect @notifier.disconnect @notifier = nil end DEPRECATED_IMPLICIT_CONNECT = "Calling Notiffany::Notifier.notify()" + " without a prior Notifier.connect() is deprecated" def self.notify(message, options = {}) unless @notifier # TODO: reenable again? # UI.deprecation(DEPRECTED_IMPLICIT_CONNECT) connect(notify: true) end @notifier.notify(message, options) rescue RuntimeError => e UI.error "Notification failed for #{@notifier.class.name}: #{e.message}" UI.debug e.backtrace.join("\n") end def self.turn_on @notifier.turn_on end def self.toggle unless @notifier.enabled? UI.error NOTIFICATIONS_DISABLED return end if @notifier.active? UI.info "Turn off notifications" @notifier.turn_off return end @notifier.turn_on end # Used by dsl describer def self.supported Notiffany::Notifier::SUPPORTED.inject(:merge) end # Used by dsl describer def self.detected @notifier.available.map do |mod| { name: mod.name.to_sym, options: mod.options } end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
guard-2.12.4 | lib/guard/notifier.rb |
guard-2.12.3 | lib/guard/notifier.rb |