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 14 def self.inherited(klass) 15 name = klass.to_s.split("::").pop.downcase.to_sym 16 raise "Test #{name} is already defined" if @tests.include?(name) 17 18 klass.name = name 19 20 @tests[name] = klass 21 end
new(values)
click to toggle source
# File lib/puppet/confine.rb 51 def initialize(values) 52 values = [values] unless values.is_a?(Array) 53 @values = values 54 end
test(name)
click to toggle source
# File lib/puppet/confine.rb 23 def self.test(name) 24 unless @tests.include?(name) 25 begin 26 require "puppet/confine/#{name}" 27 rescue LoadError => detail 28 unless detail.to_s =~ /No such file|cannot load such file/i 29 Puppet.warning("Could not load confine test '#{name}': #{detail}") 30 end 31 # Could not find file 32 if !Puppet[:always_retry_plugins] 33 @tests[name] = nil 34 end 35 end 36 end 37 @tests[name] 38 end
Public Instance Methods
for_binary?()
click to toggle source
# File lib/puppet/confine.rb 44 def for_binary? 45 for_binary 46 end
message(value)
click to toggle source
Provide a hook for the message when there's a failure.
# File lib/puppet/confine.rb 57 def message(value) 58 "" 59 end
reset()
click to toggle source
Provide a hook for subclasses.
# File lib/puppet/confine.rb 81 def reset 82 end
result()
click to toggle source
Collect the results of all of them.
# File lib/puppet/confine.rb 62 def result 63 values.collect { |value| pass?(value) } 64 end
valid?()
click to toggle source
Test whether our confine matches.
# File lib/puppet/confine.rb 67 def valid? 68 values.each do |value| 69 unless pass?(value) 70 Puppet.debug { label + ": " + message(value) } 71 return false 72 end 73 end 74 75 return true 76 ensure 77 reset 78 end