class Confine

Common module for the Boolean confines. It currently contains just enough code to implement PUP-9336.

Attributes

name[RW]
for_binary[RW]

Mark that this confine is used for testing binary existence.

label[RW]

Used for logging.

values[R]

Public Class Methods

inherited(klass) click to toggle source
   # File lib/puppet/confine.rb
15 def self.inherited(klass)
16   name = klass.to_s.split("::").pop.downcase.to_sym
17   raise "Test #{name} is already defined" if @tests.include?(name)
18 
19   klass.name = name
20 
21   @tests[name] = klass
22 end
new(values) click to toggle source
   # File lib/puppet/confine.rb
52 def initialize(values)
53   values = [values] unless values.is_a?(Array)
54   @values = values
55 end
test(name) click to toggle source
   # File lib/puppet/confine.rb
24 def self.test(name)
25   unless @tests.include?(name)
26     begin
27       require "puppet/confine/#{name}"
28     rescue LoadError => detail
29       unless detail.to_s =~ /No such file|cannot load such file/i
30         Puppet.warning("Could not load confine test '#{name}': #{detail}")
31       end
32       # Could not find file
33       if !Puppet[:always_retry_plugins]
34         @tests[name] = nil
35       end
36     end
37   end
38   @tests[name]
39 end

Public Instance Methods

for_binary?() click to toggle source
   # File lib/puppet/confine.rb
45 def for_binary?
46   for_binary
47 end
message(value) click to toggle source

Provide a hook for the message when there's a failure.

   # File lib/puppet/confine.rb
58 def message(value)
59   ""
60 end
reset() click to toggle source

Provide a hook for subclasses.

   # File lib/puppet/confine.rb
82 def reset
83 end
result() click to toggle source

Collect the results of all of them.

   # File lib/puppet/confine.rb
63 def result
64   values.collect { |value| pass?(value) }
65 end
valid?() click to toggle source

Test whether our confine matches.

   # File lib/puppet/confine.rb
68 def valid?
69   values.each do |value|
70     unless pass?(value)
71       Puppet.debug { label + ": " + message(value) }
72       return false
73     end
74   end
75 
76   return true
77 ensure
78   reset
79 end