Server IP : 172.67.158.161 / Your IP : 3.145.50.124 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/confine/ |
Upload File : |
require_relative '../../puppet/confine' # Common module for the Boolean confines. It currently # contains just enough code to implement PUP-9336. class Puppet::Confine module Boolean # Returns the passing value for the Boolean confine. def passing_value raise NotImplementedError, "The Boolean confine %{confine} must provide the passing value." % { confine: self.class.name } end # The Boolean confines 'true' and 'false' let the user specify # two types of values: # * A lambda for lazy evaluation. This would be something like # confine :true => lambda { true } # # * A single Boolean value, or an array of Boolean values. This would # be something like # confine :true => true OR confine :true => [true, false, false, true] # # This override distinguishes between the two cases. def values # Note that Puppet::Confine's constructor ensures that @values # will always be an array, even if a lambda's passed in. This is # why we have the length == 1 check. unless @values.length == 1 && @values.first.respond_to?(:call) return @values end # We have a lambda. Here, we want to enforce "cache positive" # behavior, which is to cache the result _if_ it evaluates to # the passing value (i.e. the class name). return @cached_value unless @cached_value.nil? # Double negate to coerce the value into a Boolean calculated_value = !! @values.first.call if calculated_value == passing_value @cached_value = [calculated_value] end [calculated_value] end end end