module Travis::Tools::Notification

def get(name)

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

def new(*list)

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