Module: Travis::Tools::Notification

Extended by:
Notification
Included in:
Notification
Defined in:
lib/travis/tools/notification.rb

Defined Under Namespace

Classes: Dummy, Growl, LibNotify, OSX

Constant Summary collapse

DEFAULT =
[:osx, :growl, :libnotify]
ICON =
Assets['notifications/icon.png']

Instance Method Summary collapse

Instance Method Details

#get(name) ⇒ Object

Raises:

  • (ArgumentError)

20
21
22
23
24
# File 'lib/travis/tools/notification.rb', line 20

def get(name)
  const = constants.detect { |c| c.to_s[/[^:]+$/].downcase == name.to_s }
  raise ArgumentError, "unknown notifications type %p" % name unless const
  const_get(const).new
end

#new(*list) ⇒ Object

Raises:

  • (ArgumentError)

13
14
15
16
17
18
# File 'lib/travis/tools/notification.rb', line 13

def new(*list)
  list.concat(DEFAULT) if list.empty?
  notification = list.map { |n| get(n) }.detect { |n| n.available? }
  raise ArgumentError, "no notification system found (looked for #{list.join(", ")})" unless notification
  notification
end