Sha256: 2b4b60f0bbab2c5ff6c821dd03946109371c761f81f24567ab93c9fb9f09e4ea

Contents?: true

Size: 1.1 KB

Versions: 16

Compression:

Stored size: 1.1 KB

Contents

require 'puppet/util/tag_set'

module Puppet::Util::Tagging
  ValidTagRegex = /^\w[-\w:.]*$/

  # Add a tag to our current list.  These tags will be added to all
  # of the objects contained in this scope.
  def tag(*ary)
    @tags ||= new_tags

    ary.each do |tag|
      name = tag.to_s.downcase
      if name =~ ValidTagRegex
        @tags << name
        name.split("::").each do |section|
          @tags << section
        end
      else
        fail(Puppet::ParseError, "Invalid tag #{name}")
      end
    end
  end

  # Are we tagged with the provided tag?
  def tagged?(*tags)
    not ( self.tags & tags.flatten.collect { |t| t.to_s } ).empty?
  end

  # Return a copy of the tag list, so someone can't ask for our tags
  # and then modify them.
  def tags
    @tags ||= new_tags
    @tags.dup
  end

  def tags=(tags)
    @tags = new_tags

    return if tags.nil? or tags == ""

    tags = tags.strip.split(/\s*,\s*/) if tags.is_a?(String)

    tags.each {|t| tag(t) }
  end

  private

  def valid_tag?(tag)
    tag.is_a?(String) and tag =~ ValidTagRegex
  end

  def new_tags
    Puppet::Util::TagSet.new
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
puppet-3.6.1 lib/puppet/util/tagging.rb
puppet-3.6.1-x86-mingw32 lib/puppet/util/tagging.rb
puppet-3.6.0 lib/puppet/util/tagging.rb
puppet-3.6.0-x86-mingw32 lib/puppet/util/tagging.rb
puppet-3.6.0.rc1 lib/puppet/util/tagging.rb
puppet-3.6.0.rc1-x86-mingw32 lib/puppet/util/tagging.rb
puppet-3.5.1 lib/puppet/util/tagging.rb
puppet-3.5.1-x86-mingw32 lib/puppet/util/tagging.rb
puppet-3.5.1.rc1 lib/puppet/util/tagging.rb
puppet-3.5.1.rc1-x86-mingw32 lib/puppet/util/tagging.rb
puppet-3.5.0.rc3 lib/puppet/util/tagging.rb
puppet-3.5.0.rc3-x86-mingw32 lib/puppet/util/tagging.rb
puppet-3.5.0.rc2 lib/puppet/util/tagging.rb
puppet-3.5.0.rc2-x86-mingw32 lib/puppet/util/tagging.rb
puppet-3.5.0.rc1 lib/puppet/util/tagging.rb
puppet-3.5.0.rc1-x86-mingw32 lib/puppet/util/tagging.rb