From 2fb9d23c01f70578fc3c0b35323005836f73d52e Mon Sep 17 00:00:00 2001 From: Nate Riffe Date: Tue, 29 Dec 2015 19:37:00 -0600 Subject: [PATCH] Check for API support for autorequire `Socket.ip_address_list` is a new addition to ruby 1.9. Maintain support for ruby 1.8.7 by making the new autorequire feature of `resource_record` conditional on the existence of the required API. --- lib/puppet/type/resource_record.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/puppet/type/resource_record.rb b/lib/puppet/type/resource_record.rb index db9c1f6..595e77b 100644 --- a/lib/puppet/type/resource_record.rb +++ b/lib/puppet/type/resource_record.rb @@ -7,9 +7,11 @@ Puppet::Type.newtype(:resource_record) do autorequire(:service) do reqs = [] # Depend on the bind service if the record is local - reqs << 'bind' if Socket.ip_address_list.any? do |intf| - Resolv.getaddresses(self[:server]).any? do |addr| - intf.ip_address === addr + if Socket.respond_to? :ip_address_list + reqs << 'bind' if Socket.ip_address_list.any? do |intf| + Resolv.getaddresses(self[:server]).any? do |addr| + intf.ip_address === addr + end end end reqs