Module: Submission::LinearRequestGraph

Included in:
LinearSubmission, ReRequestSubmission
Defined in:
app/models/submission/linear_request_graph.rb

Overview

This module can be included where the Order has a linear behaviour, with no branching. Eg. in LinearSubmission

Defined Under Namespace

Classes: SourceData

Instance Method Summary collapse

Instance Method Details

#build_request_graph!(multiplexing_assets = nil) ⇒ Object

Note:

The block behaviour here looks a bit odd, and is a result of the previous behaviour in which the multiplexing assets were yielded directly to the submission. This behaviour can be simplified eventually, but is maintained for the time being to reduce risk of a more significant re-write.

Builds the entire request graph for this Order This is called from Submission#process_submission! which processes each order in turn, multiplexing_assets returned by the first order get passed into subsequent orders.


21
22
23
24
25
26
27
28
29
30
31
# File 'app/models/submission/linear_request_graph.rb', line 21

def build_request_graph!(multiplexing_assets = nil)
  ActiveRecord::Base.transaction do
    mx_assets_tmp = nil
    create_request_chain!(
      build_request_type_multiplier_pairs,
      assets.map { |asset| SourceData.new(asset, asset.latest_stock_metrics(product), nil) },
      multiplexing_assets
    ) { |a| mx_assets_tmp = a }
    mx_assets_tmp
  end
end