Module: Omnizip::Pipe
- Defined in:
- lib/omnizip/pipe.rb,
lib/omnizip/pipe/stream_compressor.rb,
lib/omnizip/pipe/stream_decompressor.rb
Overview
Unix pipe operations for stdin/stdout integration
Enables compression and decompression through Unix pipes without temporary files, supporting container workflows, CI/CD pipelines, and stream processing scenarios.
Defined Under Namespace
Classes: StreamCompressor, StreamDecompressor
Class Method Summary collapse
-
.compress(input, output, format: :zip, compression: nil, **options) ⇒ Integer
Compress from input stream to output stream.
-
.decompress(input, output_dir: nil, output: nil, **options) ⇒ Integer, Hash
Decompress from input stream.
-
.pipe_mode? ⇒ Boolean
Check if running in pipe mode.
-
.stdin?(input) ⇒ Boolean
Detect if input is stdin.
-
.stdout?(output) ⇒ Boolean
Detect if output is stdout.
Class Method Details
.compress(input, output, format: :zip, compression: nil, **options) ⇒ Integer
Compress from input stream to output stream
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/omnizip/pipe.rb', line 53 def compress(input, output, format: :zip, compression: nil, **) compressor = Pipe::StreamCompressor.new( input, output, format, compression: compression, **, ) compressor.compress end |
.decompress(input, output_dir: nil, output: nil, **options) ⇒ Integer, Hash
Decompress from input stream
76 77 78 79 80 81 82 83 84 |
# File 'lib/omnizip/pipe.rb', line 76 def decompress(input, output_dir: nil, output: nil, **) decompressor = Pipe::StreamDecompressor.new( input, output_dir: output_dir, output: output, **, ) decompressor.decompress end |
.pipe_mode? ⇒ Boolean
Check if running in pipe mode
Detects if stdin/stdout are pipes (not TTY), indicating the program is being used in a Unix pipeline.
99 100 101 |
# File 'lib/omnizip/pipe.rb', line 99 def pipe_mode? !$stdin.tty? && !$stdout.tty? end |
.stdin?(input) ⇒ Boolean
Detect if input is stdin
107 108 109 |
# File 'lib/omnizip/pipe.rb', line 107 def stdin?(input) ["-", $stdin].include?(input) end |
.stdout?(output) ⇒ Boolean
Detect if output is stdout
115 116 117 |
# File 'lib/omnizip/pipe.rb', line 115 def stdout?(output) ["-", $stdout].include?(output) end |