# class Puppet::Provider::ConfineCollection

### Attributes

label[R]

### Public Class Methods

new(label) click to toggle source

    # File lib/puppet/provider/confine_collection.rb, line 27
    def initialize(label)
      @label = label
      @confines = []
    end

### Public Instance Methods

confine(hash) click to toggle source

    # File lib/puppet/provider/confine_collection.rb, line 6
    def confine(hash)
      if hash.include?(:for_binary)
        for_binary = true
        hash.delete(:for_binary)
      else
        for_binary = false
      end
      hash.each do |test, values|
        if klass = Puppet::Provider::Confine.test(test)
          @confines << klass.new(values)
          @confines[-1].for_binary = true if for_binary
        else
          confine = Puppet::Provider::Confine.test(:variable).new(values)
          confine.name = test
          @confines << confine
        end
        @confines[-1].label = self.label
      end
    end

summary() click to toggle source

Return a hash of the whole confine set, used for the Provider reference.

    # File lib/puppet/provider/confine_collection.rb, line 34
    def summary
      confines = Hash.new { |hash, key| hash[key] = [] }
      @confines.each { |confine| confines[confine.class] << confine }
      result = {}
      confines.each do |klass, list|
        value = klass.summarize(list)
        next if (value.respond_to?(:length) and value.length == 0) or (value == 0)
        result[klass.name] = value

      end
      result
    end

valid?() click to toggle source

    # File lib/puppet/provider/confine_collection.rb, line 47
    def valid?
      ! @confines.detect { |c| ! c.valid? }
    end