class SoarFlow::ID

Attributes

app[R]

Public Class Methods

generate_flow_id() click to toggle source
# File lib/soar_flow.rb, line 20
def self.generate_flow_id
  "#{SecureRandom.hex(32)}"
end
new(app) click to toggle source
# File lib/soar_flow.rb, line 9
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/soar_flow.rb, line 13
def call(env)
  request = Rack::Request.new(env)
  request = generate_or_honor_flow_id(request)
  request.update_param('flow_identifier', request.params['flow_identifier'])
  @app.call(env)
end

Private Instance Methods

generate_or_honor_flow_id(request) click to toggle source
# File lib/soar_flow.rb, line 26
def generate_or_honor_flow_id(request)
  if request.params['flow_identifier'].nil?
    request.params['flow_identifier'] = SoarFlow::ID::generate_flow_id
  end
  request
end