Class: Puppet::FileServing::Base Private
- Defined in:
- lib/puppet/file_serving/base.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
The base class for Content and Metadata; provides common functionality like the behaviour around links.
Instance Attribute Summary collapse
-
#links ⇒ Object
private
Determine how we deal with links.
-
#path ⇒ Object
private
Set our base path.
-
#relative_path ⇒ Object
private
Set a relative path; this is used for recursion, and sets the file’s path relative to the initial recursion point.
-
#source ⇒ Object
private
This is for external consumers to store the source that was used to retrieve the metadata.
Class Method Summary collapse
- .absolute?(path) ⇒ Boolean private
Instance Method Summary collapse
-
#exist? ⇒ Boolean
private
Does our file exist?.
-
#full_path ⇒ Object
private
Return the full path to our file.
-
#initialize(path, links: nil, relative_path: nil, source: nil) ⇒ Base
constructor
private
A new instance of Base.
-
#stat ⇒ Object
private
Stat our file, using the appropriate link-sensitive method.
- #to_data_hash ⇒ Object private
Constructor Details
#initialize(path, links: nil, relative_path: nil, source: nil) ⇒ Base
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Base.
36 37 38 39 40 41 42 43 |
# File 'lib/puppet/file_serving/base.rb', line 36 def initialize(path, links: nil, relative_path: nil, source: nil) self.path = path @links = :manage self.links = links if links self.relative_path = relative_path if relative_path self.source = source if source end |
Instance Attribute Details
#links ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Determine how we deal with links.
46 47 48 |
# File 'lib/puppet/file_serving/base.rb', line 46 def links @links end |
#path ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Set our base path.
56 57 58 |
# File 'lib/puppet/file_serving/base.rb', line 56 def path @path end |
#relative_path ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Set a relative path; this is used for recursion, and sets the file’s path relative to the initial recursion point.
64 65 66 |
# File 'lib/puppet/file_serving/base.rb', line 64 def relative_path @relative_path end |
#source ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This is for external consumers to store the source that was used to retrieve the metadata.
10 11 12 |
# File 'lib/puppet/file_serving/base.rb', line 10 def source @source end |
Class Method Details
.absolute?(path) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
84 85 86 |
# File 'lib/puppet/file_serving/base.rb', line 84 def self.absolute?(path) Puppet::Util.absolute_path?(path, :posix) || (Puppet::Util::Platform.windows? && Puppet::Util.absolute_path?(path, :windows)) end |
Instance Method Details
#exist? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Does our file exist?
13 14 15 16 17 18 |
# File 'lib/puppet/file_serving/base.rb', line 13 def exist? stat return true rescue return false end |
#full_path ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Return the full path to our file. Fails if there’s no path set.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/puppet/file_serving/base.rb', line 21 def full_path if relative_path.nil? or relative_path == "" or relative_path == "." full_path = path else full_path = File.join(path, relative_path) end if Puppet::Util::Platform.windows? # Replace multiple slashes as long as they aren't at the beginning of a filename full_path.gsub(%r{(./)/+}, '\1') else full_path.gsub(%r{//+}, '/') end end |
#stat ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Stat our file, using the appropriate link-sensitive method.
71 72 73 74 |
# File 'lib/puppet/file_serving/base.rb', line 71 def stat @stat_method ||= self.links == :manage ? :lstat : :stat Puppet::FileSystem.send(@stat_method, full_path) end |
#to_data_hash ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
76 77 78 79 80 81 82 |
# File 'lib/puppet/file_serving/base.rb', line 76 def to_data_hash { 'path' => @path, 'relative_path' => @relative_path, 'links' => @links.to_s } end |