travis-api/lib/travis/notification/publisher/log.rb
Aakriti Gupta 65f1a29d86 Move travis-core files from /vendor to /lib.
- Re-factor
- Remove code for notifications
- Remove addons
- Remove travis-core gem.
- Ignore logs directory only
- Move core tests to spec/lib
2016-07-20 11:22:25 +02:00

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