Sha256: a2b9329dbd69e6db0e6e693e77c75e4d3f1292f0fc497f7f7df0116e6f663311

Contents?: true

Size: 1.15 KB

Versions: 13

Compression:

Stored size: 1.15 KB

Contents

require 'puppet/parameter'

class Puppet::Parameter::Path < Puppet::Parameter
  def self.accept_arrays(bool = true)
    @accept_arrays = !!bool
  end
  def self.arrays?
    @accept_arrays
  end

  def validate_path(paths)
    if paths.is_a?(Array) and ! self.class.arrays? then
      fail "#{name} only accepts a single path, not an array of paths"
    end

    # We *always* support Unix path separators, as Win32 does now too.
    absolute = "[/#{::Regexp.quote(::File::SEPARATOR)}]"
    win32    = Puppet.features.microsoft_windows?

    Array(paths).each do |path|
      next if path =~ %r{^#{absolute}}
      next if win32 and path =~ %r{^(?:[a-zA-Z]:)?#{absolute}}
      fail("#{name} must be a fully qualified path")
    end

    paths
  end

  # This will be overridden if someone uses the validate option, which is why
  # it just delegates to the other, useful, method.
  def unsafe_validate(paths)
    validate_path(paths)
  end

  # Likewise, this might be overridden, but by default...
  def unsafe_munge(paths)
    if paths.is_a?(Array) and ! self.class.arrays? then
      fail "#{name} only accepts a single path, not an array of paths"
    end
    paths
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
puppet-2.6.18 lib/puppet/parameter/path.rb
puppet-2.6.17 lib/puppet/parameter/path.rb
puppet-2.6.16 lib/puppet/parameter/path.rb
puppet-2.6.15 lib/puppet/parameter/path.rb
puppet-2.6.14 lib/puppet/parameter/path.rb
puppet-2.6.13 lib/puppet/parameter/path.rb
puppet-2.6.12 lib/puppet/parameter/path.rb
puppet-2.6.11 lib/puppet/parameter/path.rb
puppet-2.6.10 lib/puppet/parameter/path.rb
puppet-2.7.3 lib/puppet/parameter/path.rb
puppet-2.7.1 lib/puppet/parameter/path.rb
puppet-2.6.9 lib/puppet/parameter/path.rb
puppet-2.6.8 lib/puppet/parameter/path.rb