Module: Omnizip::Parallel
- Defined in:
- lib/omnizip/parallel.rb,
lib/omnizip/parallel/job_queue.rb,
lib/omnizip/parallel/worker_pool.rb,
lib/omnizip/parallel/job_scheduler.rb,
lib/omnizip/parallel/parallel_extractor.rb,
lib/omnizip/parallel/parallel_compressor.rb
Overview
Parallel processing module for multi-threaded compression/extraction
Leverages Fractor for parallel processing to utilize multi-core CPUs. Provides high-level APIs for parallel compression and extraction operations.
Defined Under Namespace
Classes: ClosedQueueError, JobQueue, JobScheduler, ParallelCompressor, ParallelExtractor, WorkerPool
Class Attribute Summary collapse
-
.config ⇒ Object
Global configuration.
Class Method Summary collapse
-
.compress_directory(dir, output, **options) ⇒ String
Compress directory in parallel.
-
.configure {|config| ... } ⇒ void
Configure parallel processing globally.
-
.default_config ⇒ Omnizip::Models::ParallelOptions
Get default configuration.
-
.extract_archive(archive, dest, **options) ⇒ Array<String>
Extract archive in parallel.
-
.reset_config ⇒ void
Reset configuration to defaults.
-
.setup_default_config ⇒ Object
Initialize default configuration.
Class Attribute Details
.config ⇒ Object
Global configuration
34 35 36 |
# File 'lib/omnizip/parallel.rb', line 34 def config @config end |
Class Method Details
.compress_directory(dir, output, **options) ⇒ String
Compress directory in parallel
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/omnizip/parallel.rb', line 70 def compress_directory(dir, output, **) threads = .delete(:threads) || @config&.threads compressor = ParallelCompressor.new(@config, threads: threads) result = compressor.compress(dir, output, **) # Print stats if verbose if [:verbose] || @config&.verbose stats = compressor.statistics print_stats("Compression", stats) end result end |
.configure {|config| ... } ⇒ void
This method returns an undefined value.
Configure parallel processing globally
48 49 50 51 52 53 |
# File 'lib/omnizip/parallel.rb', line 48 def configure @config ||= Omnizip::Models::ParallelOptions.new yield @config if block_given? @config.validate! @config end |
.default_config ⇒ Omnizip::Models::ParallelOptions
Get default configuration
116 117 118 |
# File 'lib/omnizip/parallel.rb', line 116 def default_config @default_config ||= Omnizip::Models::ParallelOptions.new end |
.extract_archive(archive, dest, **options) ⇒ Array<String>
Extract archive in parallel
98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/omnizip/parallel.rb', line 98 def extract_archive(archive, dest, **) threads = .delete(:threads) || @config&.threads extractor = ParallelExtractor.new(@config, threads: threads) result = extractor.extract(archive, dest, **) # Print stats if verbose if [:verbose] || @config&.verbose stats = extractor.statistics print_stats("Extraction", stats) end result end |
.reset_config ⇒ void
This method returns an undefined value.
Reset configuration to defaults
123 124 125 |
# File 'lib/omnizip/parallel.rb', line 123 def reset_config @config = Omnizip::Models::ParallelOptions.new end |
.setup_default_config ⇒ Object
Initialize default configuration
148 149 150 |
# File 'lib/omnizip/parallel.rb', line 148 def self.setup_default_config @config = Omnizip::Models::ParallelOptions.new end |