Sha256: 6f9c1457aa158a52e00f38d719e535be2bb37766577254241470c358d8fd83c9
Contents?: true
Size: 775 Bytes
Versions: 2
Compression:
Stored size: 775 Bytes
Contents
# frozen_string_literal: true module WebConsole # Injects content into a Rack body. class Injector def initialize(body, headers) @body = "".dup body.each { |part| @body << part } body.close if body.respond_to?(:close) @headers = headers end def inject(content) # Set content-length header to the size of the current body # + the extra content. Otherwise the response will be truncated. if @headers[Rack::CONTENT_LENGTH] @headers[Rack::CONTENT_LENGTH] = (@body.bytesize + content.bytesize).to_s end [ if position = @body.rindex("</body>") [ @body.insert(position, content) ] else [ @body << content ] end, @headers ] end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
blacklight-spotlight-3.6.0.beta8 | vendor/bundle/ruby/3.2.0/gems/web-console-4.2.1/lib/web_console/injector.rb |
web-console-4.2.1 | lib/web_console/injector.rb |