Mark that this confine is used for testing binary existence.
Used for logging.
# File lib/puppet/provider/confine.rb, line 14 def self.inherited(klass) name = klass.to_s.split("::").pop.downcase.to_sym raise "Test #{name} is already defined" if @tests.include?(name) klass.name = name @tests[name] = klass end
# File lib/puppet/provider/confine.rb, line 48 def initialize(values) values = [values] unless values.is_a?(Array) @values = values end
# File lib/puppet/provider/confine.rb, line 23 def self.test(name) unless @tests[name] begin require "puppet/provider/confine/#{name}" rescue LoadError => detail unless detail.to_s =~ /No such file|cannot load such file/ warn "Could not load confine test '#{name}': #{detail}" end # Could not find file end end @tests[name] end
# File lib/puppet/provider/confine.rb, line 41 def for_binary? for_binary end
Provide a hook for the message when there’s a failure.
# File lib/puppet/provider/confine.rb, line 54 def message(value) "" end
Provide a hook for subclasses.
# File lib/puppet/provider/confine.rb, line 78 def reset end
Collect the results of all of them.
# File lib/puppet/provider/confine.rb, line 59 def result values.collect { |value| pass?(value) } end
Test whether our confine matches.
# File lib/puppet/provider/confine.rb, line 64 def valid? values.each do |value| unless pass?(value) Puppet.debug(label + ": " + message(value)) return false end end return true ensure reset end