module TraceHeader::Description

Constants

MAXIMUM_LENGTH

Public Instance Methods

display(result) click to toggle source
# File lib/trace_header/description.rb, line 5
def display(result)
  puts description(result)
end

Private Instance Methods

description(result) click to toggle source
# File lib/trace_header/description.rb, line 10
      def description(result)
        <<~"TEXT"
        ----------------------------------------------------

        TraceHeader printing...

        [Target Middleware]
          #{result.target_app.class}\n
        [New Headers]
        #{detailed_description(result.new_headers)}
        [Changed Headers]
        #{detailed_description(result.changed_headers)}
        ----------------------------------------------------
        TEXT
      end
detailed_description(headers) click to toggle source
# File lib/trace_header/description.rb, line 26
      def detailed_description(headers)
        if headers.empty?
          "  - Nothing added. -\n"
        else
          <<~"TEXT"
            #{lined_description(headers).join("\n")}
          TEXT
        end
      end
form(text) click to toggle source
# File lib/trace_header/description.rb, line 42
def form(text)
  text.split(';').map do |str|
    str.size > MAXIMUM_LENGTH ? str[0..MAXIMUM_LENGTH] + '...' : str
  end.join(';')
end
lined_description(headers) click to toggle source
# File lib/trace_header/description.rb, line 36
def lined_description(headers)
  headers.flat_map do |header|
    header.map { |field, value| "  - #{field}:  #{form(value)}" }
  end
end