Class: ReactOnRailsPro::StreamRequest

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

Overview

rubocop:disable Metrics/ClassLength

Constant Summary collapse

MAX_PULL_PROP_NAME_LENGTH =
256

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(first_chunk_warn_callback: nil, pull_enabled: false, &request_block) ⇒ StreamRequest

Returns a new instance of StreamRequest.



127
128
129
130
131
132
133
134
# File 'lib/react_on_rails_pro/stream_request.rb', line 127

def initialize(first_chunk_warn_callback: nil, pull_enabled: false, &request_block)
  @request_executor = request_block
  @first_chunk_warn_callback = first_chunk_warn_callback
  @pull_enabled = pull_enabled
  @emitter = nil
  @status = nil
  @status_recorded = false
end

Class Method Details

.create(first_chunk_warn_callback: nil, pull_enabled: false, &request_block) ⇒ Object



149
150
151
# File 'lib/react_on_rails_pro/stream_request.rb', line 149

def self.create(first_chunk_warn_callback: nil, pull_enabled: false, &request_block)
  StreamDecorator.new(new(first_chunk_warn_callback:, pull_enabled:, &request_block))
end

Instance Method Details

#each_chunk(&block) ⇒ Object



138
139
140
141
142
143
144
145
146
147
# File 'lib/react_on_rails_pro/stream_request.rb', line 138

def each_chunk(&block)
  return enum_for(:each_chunk) unless block

  parent_context = ReactOnRailsPro::OpenTelemetry.capture_context
  Sync do
    ReactOnRailsPro::OpenTelemetry.with_context(parent_context) do
      consume_with_bundle_reupload(&block)
    end
  end
end

#http_statusObject



123
# File 'lib/react_on_rails_pro/stream_request.rb', line 123

def http_status = @status

#http_status_recorded?Boolean

Returns:

  • (Boolean)


125
# File 'lib/react_on_rails_pro/stream_request.rb', line 125

def http_status_recorded? = @status_recorded