Module: Philiprehberger::HeaderKit::Forwarded

Defined in:
lib/philiprehberger/header_kit/forwarded.rb

Class Method Summary collapse

Class Method Details

.parse(header) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/philiprehberger/header_kit/forwarded.rb', line 8

def parse(header)
  return [] if header.nil? || header.empty?

  header.split(',').map do |part|
    entry = {}
    part.strip.split(';').each do |pair|
      key, value = pair.strip.split('=', 2)
      next unless key && value

      entry[key.strip.downcase.to_sym] = unquote(value.strip)
    end
    entry
  end
end

.parse_via(header) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/philiprehberger/header_kit/forwarded.rb', line 23

def parse_via(header)
  return [] if header.nil? || header.empty?

  header.split(',').map do |entry|
    parts = entry.strip.split(/\s+/, 3)
    result = {}
    if parts.length >= 2
      result[:protocol] = parts[0]
      result[:host] = parts[1]
      result[:comment] = parts[2] if parts[2]
    else
      result[:host] = parts[0]
    end
    result
  end
end