Sha256: a439d9a64dffb15e78885fdba53829433b6b3ea25099f215d8b71f5c4a20f994
Contents?: true
Size: 1.74 KB
Versions: 63
Compression:
Stored size: 1.74 KB
Contents
# encoding: utf-8 require 'travis/client' require 'travis/tools/safe_string' module Travis module Client class Artifact < Entity CHUNKED = "application/json; chunked=true; version=2, application/json; version=2" # @!parse attr_reader :job_id, :type, :body attributes :job_id, :type, :body # @!parse attr_reader :job has :job def encoded_body Tools::SafeString.encoded(body) end def colorized_body attributes['colorized_body'] ||= Tools::SafeString.colorized(body) end def clean_body attributes['clean_body'] ||= Tools::SafeString.clean(body) end def body(stream = block_given?) return load_attribute('body') unless block_given? or stream return yield(load_attribute('body')) unless stream and job.pending? number = 0 session.listen(self) do |listener| listener.on 'job:log' do |event| next unless event.payload['number'] > number number = event.payload['number'] yield event.payload['_log'] listener.disconnect if event.payload['final'] end listener.on 'job:finished' do |event| listener.disconnect end listener.on_connect do data = session.get_raw("/artifacts/#{id}", nil, "Accept" => CHUNKED)['log'] if data['parts'] data['parts'].each { |p| yield p['content'] } number = data['parts'].last['number'] if data['parts'].any? else yield data['body'] listener.disconnect end end end end def pusher_entity job end one :log many :logs aka :artifact end end end
Version data entries
63 entries across 63 versions & 1 rubygems
Version | Path |
---|---|
travis-1.5.2 | lib/travis/client/artifact.rb |
travis-1.5.1 | lib/travis/client/artifact.rb |
travis-1.5.0 | lib/travis/client/artifact.rb |