Class: Cloudflare::BinaryBody

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudflare_workers.rb

Overview

BinaryBody wraps a JS ReadableStream (from R2, fetch, etc.) so it can flow through the Rack/Sinatra body pipeline without being converted to an Opal String (which would mangle the bytes). ‘build_js_response` detects BinaryBody and passes the stream directly to `new Response`.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stream, content_type = 'application/octet-stream', cache_control = nil) ⇒ BinaryBody

Returns a new instance of BinaryBody.



535
536
537
538
539
# File 'lib/cloudflare_workers.rb', line 535

def initialize(stream, content_type = 'application/octet-stream', cache_control = nil)
  @stream = stream
  @content_type = content_type
  @cache_control = cache_control
end

Instance Attribute Details

#cache_controlObject (readonly)

Returns the value of attribute cache_control.



533
534
535
# File 'lib/cloudflare_workers.rb', line 533

def cache_control
  @cache_control
end

#content_typeObject (readonly)

Returns the value of attribute content_type.



533
534
535
# File 'lib/cloudflare_workers.rb', line 533

def content_type
  @content_type
end

#streamObject (readonly)

Returns the value of attribute stream.



533
534
535
# File 'lib/cloudflare_workers.rb', line 533

def stream
  @stream
end

Instance Method Details

#closeObject



545
# File 'lib/cloudflare_workers.rb', line 545

def close; end

#eachObject

Rack body contract — yield nothing so Sinatra’s content-length calculation skips this body. The real bytes go through JS.



543
# File 'lib/cloudflare_workers.rb', line 543

def each; end