Class: Buildbox::Artifact::Collector
- Inherits:
-
Object
- Object
- Buildbox::Artifact::Collector
- Includes:
- Celluloid::Logger
- Defined in:
- lib/buildbox/artifact/collector.rb
Defined Under Namespace
Classes: TooManyArtifactsError
Constant Summary collapse
- MAX_ARTIFACT_LIMIT =
500
Class Method Summary collapse
Instance Method Summary collapse
- #collect_and_copy ⇒ Object
-
#initialize(build_directory, glob) ⇒ Collector
constructor
A new instance of Collector.
Constructor Details
#initialize(build_directory, glob) ⇒ Collector
Returns a new instance of Collector.
16 17 18 19 |
# File 'lib/buildbox/artifact/collector.rb', line 16 def initialize(build_directory, glob) @build_directory = build_directory @glob = glob end |
Class Method Details
.collect_and_copy(build_directory, glob) ⇒ Object
12 13 14 |
# File 'lib/buildbox/artifact/collector.rb', line 12 def self.collect_and_copy(build_directory, glob) new(build_directory, glob).collect_and_copy end |
Instance Method Details
#collect_and_copy ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/buildbox/artifact/collector.rb', line 21 def collect_and_copy index = 0 artifacts = [] tmpdir = Dir.mktmpdir globbed_files.each do |file| raise TooManyArtifactsError if index > MAX_ARTIFACT_LIMIT absolute_path = File.(file, @build_directory) copy_to_path = File.join(tmpdir, file) if File.file?(absolute_path) artifacts << Artifact.create(@glob, file, copy_to_path, absolute_path) FileUtils.mkdir_p(File.dirname(copy_to_path)) FileUtils.cp(absolute_path, copy_to_path) end index += 1 end artifacts end |