Parent

Class/Module Index [+]

Quicksearch

PhusionPassenger::Utils::HostsFileParser

A /etc/hosts parser. Also supports writing groups of data to the file.

Public Class Methods

flush_dns_cache!() click to toggle source
# File lib/phusion_passenger/utils/hosts_file_parser.rb, line 31
def self.flush_dns_cache!
  if PlatformInfo.os_name == "macosx"
    system("dscacheutil -flushcache")
  end
end
new(filename_or_io = "/etc/hosts") click to toggle source
# File lib/phusion_passenger/utils/hosts_file_parser.rb, line 37
def initialize(filename_or_io = "/etc/hosts")
  if filename_or_io.respond_to?(:readline)
    read_and_parse(filename_or_io)
  else
    File.open(filename_or_io, "rb") do |f|
      read_and_parse(f)
    end
  end
end

Public Instance Methods

add_group_data(marker, data) click to toggle source
# File lib/phusion_passenger/utils/hosts_file_parser.rb, line 68
def add_group_data(marker, data)
  begin_index = find_line(0, "###### BEGIN #{marker} ######")
  end_index = find_line(begin_index + 1, "###### END #{marker} ######") if begin_index
  if begin_index && end_index
    @lines[begin_index + 1 .. end_index - 1] = data.split("\n")
  else
    @lines << "###### BEGIN #{marker} ######"
    @lines.concat(data.split("\n"))
    @lines << "###### END #{marker} ######"
  end
end
host_count() click to toggle source
# File lib/phusion_passenger/utils/hosts_file_parser.rb, line 51
def host_count
  return @host_names.size
end
ip_count() click to toggle source
# File lib/phusion_passenger/utils/hosts_file_parser.rb, line 47
def ip_count
  return @ips.size
end
resolve(host_name) click to toggle source
# File lib/phusion_passenger/utils/hosts_file_parser.rb, line 55
def resolve(host_name)
  if host_name.downcase == "localhost"
    return "127.0.0.1"
  else
    return @host_names[host_name.downcase]
  end
end
resolves_to_localhost?(hostname) click to toggle source
# File lib/phusion_passenger/utils/hosts_file_parser.rb, line 63
def resolves_to_localhost?(hostname)
  ip = resolve(hostname)
  return ip == "127.0.0.1" || ip == "::1" || ip == "0.0.0.0"
end
write(io) click to toggle source
# File lib/phusion_passenger/utils/hosts_file_parser.rb, line 80
def write(io)
  @lines.each do |line|
    io.puts(line)
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.