class Fleetctl::TableParser
Attributes
raw[RW]
Public Class Methods
new(raw)
click to toggle source
# File lib/fleetctl/table_parser.rb, line 11 def initialize(raw) @raw = raw end
parse(raw)
click to toggle source
# File lib/fleetctl/table_parser.rb, line 6 def parse(raw) self.new(raw).parse end
Public Instance Methods
parse()
click to toggle source
# File lib/fleetctl/table_parser.rb, line 15 def parse rows = raw.split("\n").map { |row| row.split(/\t+/) } header = rows.shift if header keys = header.map { |key| key.downcase.to_sym } [].tap do |output| rows.each do |row| scrubbed_row = row.map { |val| val == '-' ? nil : val } output << Hash[keys.zip(scrubbed_row)] end end else Fleetctl.logger.error('ERROR in Fleetctl::TableParser.parse - no header row found') [] end end