class Puppet::FileSystem::PathPattern

Constants

ABSOLUTE_UNIX
ABSOLUTE_WINDOWS
CURRENT_DRIVE_RELATIVE_WINDOWS
DOTDOT

Attributes

pathname[R]

Public Class Methods

absolute(pattern) click to toggle source
   # File lib/puppet/file_system/path_pattern.rb
18 def self.absolute(pattern)
19   AbsolutePathPattern.new(pattern)
20 end
new(pattern) click to toggle source
   # File lib/puppet/file_system/path_pattern.rb
56 def initialize(pattern)
57   begin
58     @pathname = Pathname.new(pattern.strip)
59     @pathstr = @pathname.to_s
60   rescue ArgumentError => error
61     raise InvalidPattern.new(_("PathPatterns cannot be created with a zero byte."), error)
62   end
63   validate
64 end
relative(pattern) click to toggle source
   # File lib/puppet/file_system/path_pattern.rb
14 def self.relative(pattern)
15   RelativePathPattern.new(pattern)
16 end

Public Instance Methods

glob() click to toggle source
   # File lib/puppet/file_system/path_pattern.rb
34 def glob
35   Dir.glob(@pathstr)
36 end
prefix_with(prefix) click to toggle source

@param prefix [AbsolutePathPattern] An absolute path pattern instance @return [AbsolutePathPattern] A new AbsolutePathPattern prepended with

the passed prefix's pattern.
   # File lib/puppet/file_system/path_pattern.rb
29 def prefix_with(prefix)
30   new_pathname = prefix.pathname + pathname
31   self.class.absolute(new_pathname.to_s)
32 end
to_s() click to toggle source
   # File lib/puppet/file_system/path_pattern.rb
38 def to_s
39   @pathstr
40 end

Private Instance Methods

validate() click to toggle source
   # File lib/puppet/file_system/path_pattern.rb
48 def validate
49   if @pathstr.split(Pathname::SEPARATOR_PAT).any? { |f| f == DOTDOT }
50     raise(InvalidPattern, _("PathPatterns cannot be created with directory traversals."))
51   elsif @pathstr.match?(CURRENT_DRIVE_RELATIVE_WINDOWS)
52     raise(InvalidPattern, _("A PathPattern cannot be a Windows current drive relative path."))
53   end
54 end