Module: Puppet::FileServing::TerminusHelper

Included in:
Indirector::DirectFileServer, Indirector::FileMetadata::Http, Indirector::FileServer
Defined in:
lib/puppet/file_serving/terminus_helper.rb

Overview

Define some common methods for FileServing termini.

Instance Method Summary collapse

Instance Method Details

#path2instance(request, path, options = {}) ⇒ Object

Create model instance for a file in a file server.



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/puppet/file_serving/terminus_helper.rb', line 10

def path2instance(request, path, options = {})
  result = model.new(path, :relative_path => options[:relative_path])
  result.links = request.options[:links] if request.options[:links]

  result.checksum_type = request.options[:checksum_type] if request.options[:checksum_type]
  result.source_permissions = request.options[:source_permissions] if request.options[:source_permissions]

  result.collect

  result
end

#path2instances(request, *paths) ⇒ Object

Create model instances for all files in a fileset.



23
24
25
26
27
28
29
30
31
32
# File 'lib/puppet/file_serving/terminus_helper.rb', line 23

def path2instances(request, *paths)
  filesets = paths.collect do |path|
    # Filesets support indirector requests as an options collection
    Puppet::FileServing::Fileset.new(path, request)
  end

  Puppet::FileServing::Fileset.merge(*filesets).collect do |file, base_path|
    path2instance(request, base_path, :relative_path => file)
  end
end