lib/net/dns/resolver.rb in net-dns-0.5.2 vs lib/net/dns/resolver.rb in net-dns-0.5.3

- old
+ new

@@ -2,10 +2,11 @@ # $Id: Resolver.rb,v 1.11 2006/07/30 16:55:35 bluemonk Exp $ # +require 'rbconfig' require 'socket' require 'timeout' require 'ipaddr' require 'logger' require 'net/dns/packet' @@ -1060,11 +1061,11 @@ private # Parse a configuration file specified as the argument. # def parse_config_file - if RUBY_PLATFORM =~ /win/ + if self.class.platform_windows? require 'win32/resolv' arr = Win32::Resolv.get_resolv_info self.domain = arr[0] self.nameservers = arr[1] else @@ -1221,10 +1222,24 @@ raise ResolverArgumentError, "Invalid domain name #{name}" else true end end - + + + class << self + + # Returns true if running on a Windows platform. + # + # Note. This method doesn't rely on the RUBY_PLATFORM constant + # because the comparison will fail when running on JRuby. + # On JRuby RUBY_PLATFORM == 'java'. + def platform_windows? + !!(Config::CONFIG["host_os"] =~ /msdos|mswin|djgpp|mingw/i) + end + + end + end # class Resolver end # module DNS end # module Net class ResolverArgumentError < ArgumentError # :nodoc: