
- Re-factor - Remove code for notifications - Remove addons - Remove travis-core gem. - Ignore logs directory only - Move core tests to spec/lib
43 lines
1.1 KiB
Ruby
43 lines
1.1 KiB
Ruby
module Travis
|
|
module Notification
|
|
module Publisher
|
|
class Log
|
|
def publish(event)
|
|
return if ignore?(event)
|
|
|
|
level = event.key?(:exception) ? :error : :info
|
|
message = event[:message]
|
|
message = "#{message} (#{'%.5f' % event[:duration]}s)" if event[:duration]
|
|
log(level, message)
|
|
|
|
if level == :error || Travis.logger.level == ::Logger::DEBUG
|
|
event.each do |key, value|
|
|
next if key == :message
|
|
level = event.key?(:exception) ? :error : :debug
|
|
log(level, " #{key}: #{value.inspect}")
|
|
end
|
|
end
|
|
end
|
|
|
|
def log(level, msg)
|
|
Travis.logger.send(level, msg)
|
|
end
|
|
|
|
def ignore?(event)
|
|
event_received?(event) && !sync_or_request_handler?(event)
|
|
end
|
|
|
|
def event_received?(event)
|
|
event[:event].end_with?("received")
|
|
end
|
|
|
|
# TODO why do ignore these again?
|
|
def sync_or_request_handler?(event)
|
|
msg = event[:message]
|
|
msg && msg =~ /Travis::Hub::Handler::(Sync|Request)#handle/
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|