Examples
Overview
This section provides complete, runnable examples demonstrating common Cabriolet use cases. Each example includes full code, expected output, and explanations.
Available examples
Extracting from Windows Installer
Learn how to extract files from Windows installer packages (MSI, setup.exe) that use CAB compression internally.
Topics covered: * Identifying embedded CAB files * Extracting installer resources * Handling multi-volume installers * Batch extraction workflows
Creating Software Distribution Bundle
Build a complete software distribution package using CAB compression for optimal size and compatibility.
Topics covered: * Organizing files for distribution * Choosing compression algorithms * Creating multi-volume archives * Adding digital signatures
Recovering from Corrupted Archives
Use Cabriolet’s salvage mode to recover data from damaged CAB files.
Topics covered: * Detecting corruption * Using salvage mode * Partial file recovery * Verification strategies
Batch Processing Multiple Archives
Process large numbers of archive files efficiently with automation.
Topics covered: * Recursive directory scanning * Parallel processing * Error handling and logging * Progress reporting
Custom Compression Pipeline
Build advanced compression workflows with custom I/O handlers and streaming.
Topics covered: * Memory-based compression * Custom I/O handlers * Streaming compression * Format conversion pipelines
Prerequisites
All examples assume you have Cabriolet installed:
gem install cabrioletOr in your Gemfile:
gem 'cabriolet', '~> 0.1'Example categories
Basic Operations
-
Extracting files
-
Creating archives
-
Listing contents
-
Testing integrity
See: Basic Usage Guide
Advanced Techniques
-
Custom I/O handlers
-
Salvage mode recovery
-
Multi-part archives
-
Streaming operations
See: Advanced Usage Guide
Integration Patterns
-
CI/CD pipelines
-
Automated workflows
-
Batch processing
-
Format conversion
See: Use Cases Guide
Getting help
If you encounter issues with these examples:
-
Check the Troubleshooting Guide
-
Review the API Reference
-
Visit the issue tracker
-
Join the community discussions
Contributing Examples
Have a useful example to share? We’d love to include it!
-
Write clear, documented code
-
Include sample input/output
-
Test on multiple Ruby versions
-
Submit a pull request
See: Contributing Guide