Update stdlib and concat to 6.1.0 both
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / has_interface_with.rb
index 3691524..fb9af42 100644 (file)
@@ -1,31 +1,31 @@
 #
 # has_interface_with
 #
-
 module Puppet::Parser::Functions
-  newfunction(:has_interface_with, :type => :rvalue, :doc => <<-EOS
-Returns boolean based on kind and value:
-  * macaddress
-  * netmask
-  * ipaddress
-  * network
+  newfunction(:has_interface_with, :type => :rvalue, :doc => <<-DOC
+    @summary
+      Returns boolean based on kind and value.
+
+    @return
+      boolean values `true` or `false`
 
-has_interface_with("macaddress", "x:x:x:x:x:x")
-has_interface_with("ipaddress", "127.0.0.1")    => true
-etc.
+    Valid kinds are `macaddress`, `netmask`, `ipaddress` and `network`.
 
-If no "kind" is given, then the presence of the interface is checked:
-has_interface_with("lo")                        => true
-    EOS
-  ) do |args|
+    @example **Usage**
+      has_interface_with("macaddress", "x:x:x:x:x:x") # Returns `false`
+      has_interface_with("ipaddress", "127.0.0.1") # Returns `true`
 
-    raise(Puppet::ParseError, "has_interface_with(): Wrong number of arguments " +
-          "given (#{args.size} for 1 or 2)") if args.size < 1 or args.size > 2
+    @example If no "kind" is given, then the presence of the interface is checked:
+      has_interface_with("lo") # Returns `true`
+    DOC
+             ) do |args|
+
+    raise(Puppet::ParseError, "has_interface_with(): Wrong number of arguments given (#{args.size} for 1 or 2)") if args.empty? || args.size > 2
 
     interfaces = lookupvar('interfaces')
 
     # If we do not have any interfaces, then there are no requested attributes
-    return false if (interfaces == :undefined || interfaces.nil?)
+    return false if interfaces == :undefined || interfaces.nil?
 
     interfaces = interfaces.split(',')
 
@@ -38,8 +38,11 @@ has_interface_with("lo")                        => true
     # Bug with 3.7.1 - 3.7.3  when using future parser throws :undefined_variable
     # https://tickets.puppetlabs.com/browse/PUP-3597
     factval = nil
-    catch :undefined_variable do
-      factval = lookupvar(kind)
+    begin
+      catch :undefined_variable do
+        factval = lookupvar(kind)
+      end
+    rescue Puppet::ParseError # rubocop:disable Lint/HandleExceptions : Eat the exception if strict_variables = true is set
     end
     if factval == value
       return true
@@ -55,7 +58,7 @@ has_interface_with("lo")                        => true
         catch :undefined_variable do
           factval = lookupvar("#{kind}_#{iface}")
         end
-      rescue Puppet::ParseError # Eat the exception if strict_variables = true is set
+      rescue Puppet::ParseError # rubocop:disable Lint/HandleExceptions : Eat the exception if strict_variables = true is set
       end
       if value == factval
         result = true