class UniformNotifier::Growl

Public Class Methods

active?() click to toggle source
# File lib/uniform_notifier/growl.rb, line 8
def active?
  @growl
end
setup_connection(growl) click to toggle source
# File lib/uniform_notifier/growl.rb, line 12
def setup_connection(growl)
  setup_connection_growl(growl)
rescue LoadError
  begin
    setup_connection_gntp(growl)
  rescue LoadError
    @growl = nil
    raise NotificationError,
          'You must install the ruby-growl or the ruby_gntp gem to use Growl notification: `gem install ruby-growl` or `gem install ruby_gntp`'
  end
end
setup_connection_gntp(growl) click to toggle source
# File lib/uniform_notifier/growl.rb, line 41
def setup_connection_gntp(growl)
  return unless growl

  require 'ruby_gntp'
  if growl.instance_of?(Hash)
    @password = growl.include?(:password) ? growl[:password] : nil
    @host = growl.include?(:host) ? growl[:host] : 'localhost'
  end
  @password ||= nil
  @host ||= 'localhost'
  @growl = GNTP.new('uniform_notifier', @host, @password, 23_053)
  @growl.register(notifications: [{ name: 'uniform_notifier', enabled: true }])

  notify 'Uniform Notifier Growl has been turned on (using GNTP)' if !growl.instance_of?(Hash) || !growl[:quiet]
end
setup_connection_growl(growl) click to toggle source
# File lib/uniform_notifier/growl.rb, line 24
def setup_connection_growl(growl)
  return unless growl

  require 'ruby-growl'
  if growl.instance_of?(Hash)
    @password = growl.include?(:password) ? growl[:password] : nil
    @host = growl.include?(:host) ? growl[:host] : 'localhost'
  end
  @password ||= nil
  @host ||= 'localhost'
  @growl = ::Growl.new @host, 'uniform_notifier'
  @growl.add_notification 'uniform_notifier'
  @growl.password = @password

  notify 'Uniform Notifier Growl has been turned on' if !growl.instance_of?(Hash) || !growl[:quiet]
end

Protected Class Methods

_out_of_channel_notify(data) click to toggle source
# File lib/uniform_notifier/growl.rb, line 59
def _out_of_channel_notify(data)
  message = data.values.compact.join("\n")

  notify(message)
end

Private Class Methods

notify(message) click to toggle source
# File lib/uniform_notifier/growl.rb, line 67
def notify(message)
  if defined?(::Growl) && @growl.is_a?(::Growl)
    @growl.notify('uniform_notifier', 'Uniform Notifier', message)
  elsif defined?(::GNTP) && @growl.is_a?(::GNTP)
    @growl.notify(name: 'uniform_notifier', title: 'Uniform Notifier', text: message)
  end
end