class Inspec::Resources::PostgresHbaConf

def clean_conf_file(conf_file = @conf_file)

def clean_conf_file(conf_file = @conf_file)
  data = read_file_content(conf_file).to_s.lines
  content = []
  data.each do |line|
    line.chomp!
    content << line unless line.match(/^\s*#/) || line.empty?
  end
  content
end

def initialize(hba_conf_path = nil)

Other tags:
    Todo: - add checks to ensure that we have data in our file
def initialize(hba_conf_path = nil)
  @conf_file = hba_conf_path || File.join(inspec.postgres.conf_dir, "pg_hba.conf")
  @content = ""
  @params = {}
  read_content
end

def parse_conf(content)

def parse_conf(content)
  content.map do |line|
    parse_line(line)
  end.compact
end

def parse_line(line)

def parse_line(line)
  x = line.split(/\s+/)
  {
    "type" => x[0],
    "database" => x[1],
    "user" => x[2],
    "address" => x[3],
    "auth_method" => x[4],
    "auth_params" => ("" if x.length == 4) || x[5..-1].join(" "),
  }
end

def read_content(config_file = @conf_file)

def read_content(config_file = @conf_file)
  # @todo use SimpleConfig here if we can
  # ^\s*(\S+)\s+(\S+)\s+(\S+)\s(?:(\d*.\d*.\d*.\d*\/\d*)|(::\/\d+))\s+(\S+)\s*(.*)?\s*$
  @content = clean_conf_file(config_file)
  @params = parse_conf(@content)
  @params.each do |line|
    if line["type"] == "local"
      line["auth_method"] = line["address"]
      line["address"] = ""
    end
  end
end

def to_s

def to_s
  "Postgres Hba Config #{@conf_file}"
end