class Covered::Coveralls

def call(wrapper, output = $stderr)

def call(wrapper, output = $stderr)
	if body = detect_service
		output.puts "Submitting data using #{body.inspect}..."
		
		source_files = []
		
		wrapper.each do |coverage|
			path = wrapper.relative_path(coverage.path)
			
			source_files << {
				name: path,
				source_digest: Digest::MD5.hexdigest(coverage.read),
				coverage: coverage.to_a,
			}
		end
		
		body[:source_files] = source_files
		
		Async do
			representation = Async::REST::Representation.new(
				Async::REST::Resource.for(URL),
				wrapper: Wrapper.new
			)
			
			begin
				response = representation.post(body)
				
				output.puts "Got response: #{response.read}"
				
			ensure
				representation.close
			end
		end
	end
end