Class: AuditLogParser

Inherits:
Object
  • Object
show all
Defined in:
lib/audit_log_parser.rb,
lib/audit_log_parser/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
'0.1.3'

Class Method Summary collapse

Class Method Details

.parse(src, flatten: false) ⇒ Object



7
8
9
10
11
# File 'lib/audit_log_parser.rb', line 7

def self.parse(src, flatten: false)
  src.each_line.map do |line|
    parse_line(line, flatten: flatten)
  end
end

.parse_line(line, flatten: false) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/audit_log_parser.rb', line 13

def self.parse_line(line, flatten: false)
  line = line.strip

  if line !~ /type=\w+ msg=audit\([\d.:]+\): */
    raise Error, "Invalid audit log header: #{line.inspect}"
  end

  header, body = line.split(/\): */, 2)
  header << ')'
  header.sub!(/: *\z/, '')
  header = parse_header(header)
  body = parse_body(body.strip)
  result = {'header' => header, 'body' => body}
  flatten ? flatten_hash(result) : result
end