Module: Farce::Resolv
- Defined in:
- lib/farce/resolv.rb,
lib/farce/resolv/dns.rb
Overview
Small module wrapping Ruby's resolver in a way that permits it to be used outside of the main ractor.
Just replace calls to Resolv with Farce::Resolv.
Defined Under Namespace
Classes: DNS
Constant Summary collapse
- Hosts =
::Resolv::Hosts
- VERSION =
::Resolv::VERSION
Class Method Summary collapse
-
.each_address(name) {|address| ... } ⇒ BasicObject
Resolves a hostname to its corresponding IP addresses one by one.
-
.each_name(address) {|name| ... } ⇒ BasicObject
Resolves an IP address to its corresponding host names one by one.
-
.getaddress(name) ⇒ String
Resolves a hostname to its corresponding IP address.
-
.getaddresses(name) ⇒ Array<String>
Resolves a hostname to its corresponding IP addresses.
-
.getname(address) ⇒ String
Resolves an IP address to its corresponding host name.
-
.getnames(address) ⇒ Array<String>
Resolves an IP address to its corresponding host names.
-
.new(resolvers = nil, **config) ⇒ ::Resolv
A new resolver instance.
-
.resolver ⇒ ::Resolv
The resolver instance for the current ractor.
Class Method Details
.each_address(name) {|address| ... } ⇒ BasicObject
Resolves a hostname to its corresponding IP addresses one by one.
82 83 |
# File 'lib/farce/resolv.rb', line 82 Internal.delegate(singleton_class, :resolver, :getaddress, :getaddresses, :each_address, :getname, :getnames, :each_name) |
.each_name(address) {|name| ... } ⇒ BasicObject
Resolves an IP address to its corresponding host names one by one.
82 83 |
# File 'lib/farce/resolv.rb', line 82 Internal.delegate(singleton_class, :resolver, :getaddress, :getaddresses, :each_address, :getname, :getnames, :each_name) |
.getaddress(name) ⇒ String
Resolves a hostname to its corresponding IP address.
82 83 |
# File 'lib/farce/resolv.rb', line 82 Internal.delegate(singleton_class, :resolver, :getaddress, :getaddresses, :each_address, :getname, :getnames, :each_name) |
.getaddresses(name) ⇒ Array<String>
Resolves a hostname to its corresponding IP addresses.
82 83 |
# File 'lib/farce/resolv.rb', line 82 Internal.delegate(singleton_class, :resolver, :getaddress, :getaddresses, :each_address, :getname, :getnames, :each_name) |
.getname(address) ⇒ String
Resolves an IP address to its corresponding host name.
82 83 |
# File 'lib/farce/resolv.rb', line 82 Internal.delegate(singleton_class, :resolver, :getaddress, :getaddresses, :each_address, :getname, :getnames, :each_name) |
.getnames(address) ⇒ Array<String>
Resolves an IP address to its corresponding host names.
82 83 |
# File 'lib/farce/resolv.rb', line 82 Internal.delegate(singleton_class, :resolver, :getaddress, :getaddresses, :each_address, :getname, :getnames, :each_name) |
.new(resolvers = nil, **config) ⇒ ::Resolv
Returns a new resolver instance.
41 42 43 44 45 46 47 48 |
# File 'lib/farce/resolv.rb', line 41 def self.new(resolvers = nil, **config) if resolvers.nil? || resolvers.is_a?(Hash) defaults = DEFAULT_CONFIG || DNS::Config.default_config_hash config = defaults.merge(resolvers || config) resolvers = [Hosts.new(DEFAULT_HOSTS), DNS.new(config)] end ::Resolv.new(resolvers) end |
.resolver ⇒ ::Resolv
Returns the resolver instance for the current ractor.
38 |
# File 'lib/farce/resolv.rb', line 38 def self.resolver = Internal::Storage.store_if_absent(self) { new } |