Class: Aranha::Parsers::Firefox::RequestHeaderFromFirefox

Inherits:
Object
  • Object
show all
Defined in:
lib/aranha/parsers/firefox/request_header_from_firefox.rb

Constant Summary collapse

FIRST_LINE_PARSER =
/\A(\S+)\s(\S+)\s(\S+)\z/.to_parser do |m|
  { verb: m[1], uri: m[2], version: m[3] }
end
HEADER_LINE_PARSER =
/\A([^:]+):\s+(.+)\z/.to_parser do |m|
  m[1..2]
end

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_file(path) ⇒ Object



8
9
10
# File 'lib/aranha/parsers/firefox/request_header_from_firefox.rb', line 8

def from_file(path)
  new(path.to_pathname.read)
end

Instance Method Details

#headersObject



29
30
31
# File 'lib/aranha/parsers/firefox/request_header_from_firefox.rb', line 29

def headers
  all_except_first_line.map { |line| HEADER_LINE_PARSER.parse!(line) }.to_h # rubocop:disable Style/MapToHash
end

#to_hObject



25
26
27
# File 'lib/aranha/parsers/firefox/request_header_from_firefox.rb', line 25

def to_h
  %w[verb uri headers].index_with { |m| send(m) }
end

#uriObject



37
38
39
# File 'lib/aranha/parsers/firefox/request_header_from_firefox.rb', line 37

def uri
  parsed_first_line.fetch(:uri)
end

#verbObject



33
34
35
# File 'lib/aranha/parsers/firefox/request_header_from_firefox.rb', line 33

def verb
  parsed_first_line.fetch(:verb)
end