Class Facter::Util::Confine
In: lib/facter/util/confine.rb
Parent: Object

A restricting tag for fact resolution mechanisms. The tag must be true for the resolution mechanism to be suitable.

Methods

new   to_s   true?  

Attributes

fact  [RW] 
values  [RW] 

Public Class methods

Add the restriction. Requires the fact name, an operator, and the value we‘re comparing to.

[Source]

    # File lib/facter/util/confine.rb, line 8
 8:     def initialize(fact, *values)
 9:         raise ArgumentError, "The fact name must be provided" unless fact
10:         raise ArgumentError, "One or more values must be provided" if values.empty?
11:         fact = fact.to_s if fact.is_a? Symbol
12:         @fact = fact
13:         @values = values.collect do |value|
14:             if value.is_a? String
15:                 value
16:             else
17:                 value.to_s
18:             end
19:         end
20:     end

Public Instance methods

[Source]

    # File lib/facter/util/confine.rb, line 22
22:     def to_s
23:         return "'%s' '%s'" % [@fact, @values.join(",")]
24:     end

Evaluate the fact, returning true or false.

[Source]

    # File lib/facter/util/confine.rb, line 27
27:     def true?
28:         unless fact = Facter[@fact]
29:             Facter.debug "No fact for %s" % @fact
30:             return false
31:         end
32:         value = fact.value
33: 
34:         return false if value.nil?
35: 
36:         @values.each { |v|
37:             return true if value.downcase == v.downcase
38:         }
39:         return false
40:     end

[Validate]