Module: Rack::Cargo::ReferenceResolver

Defined in:
lib/rack/cargo/reference_resolver.rb

Constant Summary collapse

REFERENCING_ENABLED =
[REQUEST_PATH, REQUEST_BODY].freeze
PLACEHOLDER_START =
"{{\s*"
PLACEHOLDER_END =
"\s*}}"
PLACEHOLDER_PATTERN =
/#{PLACEHOLDER_START}(.*?)#{PLACEHOLDER_END}/

Class Method Summary collapse

Class Method Details

.call(request, state) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/rack/cargo/reference_resolver.rb', line 13

def call(request, state)
  REFERENCING_ENABLED.each do |attribute_key|
    element, converted_to_json = get_json_element(request, attribute_key)
    placeholders = find_placeholders(element)

    element = replace_placeholders(element, placeholders, state)
    element = JSON.parse(element) if converted_to_json

    request.store(attribute_key, element)
  end
end