lib/net/dns/resolver.rb in net-dns-0.4 vs lib/net/dns/resolver.rb in net-dns-0.5.0
- old
+ new
@@ -11,10 +11,33 @@
require 'net/dns/packet'
require 'net/dns/resolver/timeouts'
alias old_send send
+#
+# Resolver helper method
+#
+# Calling the resolver directly
+#
+# require 'net/dns/resolver'
+# puts Resolver("www.google.com").answer.size
+# #=> 5
+#
+# An optional block can be passed yielding the Net::DNS::Packet object
+#
+# Resolver("www.google.com") {|packet| puts packet.size + " bytes"}
+# #=> 484 bytes
+#
+def Resolver(name,type=Net::DNS::A,cls=Net::DNS::IN,&blk)
+ obj = Net::DNS::Resolver.start(name,type,cls)
+ if block_given?
+ yield obj
+ else
+ return obj
+ end
+end
+
module Net # :nodoc:
module DNS
include Logger::Severity
@@ -1018,9 +1041,21 @@
arr = []
send(name, Net::DNS::MX, cls).answer.each do |entry|
arr << entry if entry.type == 'MX'
end
return arr.sort_by {|a| a.preference}
+ end
+
+ #
+ # Quick resolver method. Bypass the configuration using
+ # the defaults.
+ #
+ # Example:
+ #
+ # puts Net::DNS::Resolver.start "www.google.com"
+ #
+ def self.start(*params)
+ self.new.search(*params)
end
private
# Parse a configuration file specified as the argument.