Sha256: 0051d003ad50094468ffd42cf4b61e58fa1e1daa06757fe70bb1ff987c8ec1d0
Contents?: true
Size: 1.15 KB
Versions: 190
Compression:
Stored size: 1.15 KB
Contents
# frozen_string_literal: true module Seahorse module Client module Http class AsyncResponse < Seahorse::Client::Http::Response def initialize(options = {}) super end def signal_headers(headers) # H2 headers arrive as array of pair hash = headers.inject({}) do |h, pair| key, value = pair h[key] = value h end @status_code = hash[":status"].to_i @headers = Headers.new(hash) emit(:headers, @status_code, @headers) end def signal_done(options = {}) # H2 only has header and body # ':status' header will be sent back if options.keys.sort == [:body, :headers] signal_headers(options[:headers]) signal_data(options[:body]) signal_done elsif options.empty? @body.rewind if @body.respond_to?(:rewind) @done = true emit(:done) else msg = "options must be empty or must contain :headers and :body" raise ArgumentError, msg end end end end end end
Version data entries
190 entries across 190 versions & 1 rubygems