class Inspec::Resources::EtcHostsAllow

def initialize(hosts_allow_path = nil)

def initialize(hosts_allow_path = nil)
  @conf_path      = hosts_allow_path || '/etc/hosts.allow'
  @content        = nil
  @params         = nil
  read_content
end

def parse_conf(content)

def parse_conf(content)
  content.map do |line|
    data, = parse_comment_line(line, comment_char: '#', standalone_comments: false)
    parse_line(data) unless data == ''
  end.compact
end

def parse_line(line)

def parse_line(line)
  daemon, clients_and_options = line.split(/:\s+/, 2)
  daemon = daemon.strip
  clients_and_options ||= ''
  clients, options = clients_and_options.split(/\s+:\s+/, 2)
  client_list = clients.split(/,/).map(&:strip)
  options ||= ''
  options_list = options.split(/:\s+/).map(&:strip)
  {
    'daemon'      => daemon,
    'client_list' => client_list,
    'options'     => options_list,
  }
end

def read_content

def read_content
  @content = ''
  @params  = {}
  @content = split_daemons(read_file(@conf_path))
  @params  = parse_conf(@content)
end

def read_file(conf_path = @conf_path)

def read_file(conf_path = @conf_path)
  read_file_content(conf_path).lines
end

def split_daemons(content)

def split_daemons(content)
  split_daemons_list = []
  content.each do |line|
    data, = parse_comment_line(line, comment_char: '#', standalone_comments: false)
    next unless data != ''
    data.split(':')[0].split(',').each do |daemon|
      split_daemons_list.push("#{daemon} : " + line.split(':', 2)[1])
    end
  end
  split_daemons_list
end