ruby-progress 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35418d5ca6c2be425e6727b2480ce99da3baaa768991fc1a1e92bbcb15b54d37
4
- data.tar.gz: 439632bfced82834cdd7157e33a84c187821436fa6ca3f1854627ab092c682bc
3
+ metadata.gz: 7f08082d9cebd17f7d3ece436ff76e4f4beb8f934d803719a6bdc3477fa8c97b
4
+ data.tar.gz: da85e2d2e2587c13f4c778094fb1dcd8e2aa832dd0cff34b947b90db0f4e6585
5
5
  SHA512:
6
- metadata.gz: 3def99d8f6d1bde28c3fc6a273fe0d8be65db3aabbd440a9bef8b165bd606e09872f8f216a73b186477cd4ef84f06bcfd728cd3a96eae23fdfc2114926827082
7
- data.tar.gz: dda2ef12f24c66481e3280e23ba34932d7691edbdfa5ae503e3c1071a917158f126862df5b4b67ccb45b066523e0010b31298a4c6009dd296557cae190016367
6
+ metadata.gz: f3a816024fd6cc2aba00edd334c8b82e3783d6be3916bc36238172add46c695febcd80689ba49179b0d48a2175f983dca6b381e482c143e72f2bb0d80804b247
7
+ data.tar.gz: 56fe19077105ebf00cdae2c939eb761d0b37ae4f4cb82b439207c0562ed46cd97abd9105e7b6c0789868fa6087f5d646736b3ad0a58d3df6d09e5028add6d4bf
data/CHANGELOG.md CHANGED
@@ -1,208 +1,133 @@
1
- # Changelog
1
+ # CHANGELOG
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [1.2.0] - 2025-10-11
8
+ ## 1.3.0 - 2025-10-12
9
9
 
10
10
  ### Added
11
11
 
12
- - **--ends flag for all commands**: New universal option to add start/end characters around animations
13
- - Accepts even-length strings split in half for start and end characters
14
- - Works across all three commands: ripple, worm, and twirl
15
- - Examples: `--ends "[]"` `[animation]`, `--ends "<<>>"` `<<animation>>`
16
- - Multi-byte character support for emojis: `--ends "🎯🎪"` `🎯animation🎪`
17
- - Graceful fallback for invalid input (odd-length strings)
12
+ - PTY-based output capture: `RubyProgress::OutputCapture` now allows running commands under a PTY, keeps a rolling buffer of the last N lines for live redraw, and optionally writes the full streamed output to a `log_path` file.
13
+ - File-based daemon job queue: `RubyProgress::Daemon.process_jobs` implements atomic job enqueue/claim/processing with `.processing.result` metadata files and processed-archive behavior.
14
+ - `prg job send` CLI helper: atomically writes jobs to daemon job dirs and supports `--wait` to poll for results, `--daemon-name`, `--pid-file`, `--stdin`, and `--timeout`.
15
+ - Integration of job processing into Ripple/Twirl/Worm daemon modes so a running daemon can accept and display job output without interrupting animations.
16
+ - CLI options for output handling: `--output-position` and `--output-lines` to reserve terminal rows for captured output.
18
17
 
19
- - **Comprehensive test coverage for new features**: Added extensive test suites
20
- - Direction control tests: Forward-only vs bidirectional animation behavior
21
- - Custom style tests: ASCII, Unicode, emoji, and mixed character pattern validation
22
- - CLI integration tests: End-to-end testing for all new command-line options
23
- - Ends functionality tests: Multi-byte character handling, error cases, help documentation
24
- - Total: 58 new test examples covering all edge cases
18
+ ### Changed
25
19
 
26
- - **Worm direction control**: Fine-grained animation movement control
27
- - `--direction forward` (or `-d f`): Animation moves only forward, resets at end
28
- - `--direction bidirectional` (or `-d b`): Default back-and-forth movement
29
- - Compatible with all worm styles including custom patterns
20
+ - Job result files now merge any Hash returned by the job handler into the `.processing.result` JSON (e.g., `exit_status`, `output`, `log_path`).
30
21
 
31
- - **Worm custom styles**: User-defined 3-character animation patterns
32
- - Format: `--style custom=abc` where `abc` defines baseline, midline, peak characters
33
- - ASCII support: `--style custom=_-=` → `___-=___`
34
- - Unicode support: `--style custom=▫▪■` → geometric patterns
35
- - Emoji support: `--style custom=🟦🟨🟥` → colorful animations
36
- - Mixed characters: `--style custom=.🟡*` → combined ASCII and emoji
37
- - Proper multi-byte character counting for accurate 3-character validation
22
+ ### Tests
38
23
 
39
- ### Enhanced
24
+ - Added unit and integration tests covering job enqueueing, processing, and result persistence.
40
25
 
41
- - **Centralized utility functions**: Moved common functionality to `RubyProgress::Utils`
42
- - `Utils.parse_ends()`: Universal start/end character parsing
43
- - Eliminates code duplication across animation classes
44
- - Consistent behavior and error handling
26
+ ### Release notes
45
27
 
46
- - **Documentation improvements**: Updated README with comprehensive examples
47
- - New common options section highlighting universal flags
48
- - Detailed --ends usage examples with various character patterns
49
- - Enhanced help output for all commands
28
+ - Merge commit: 99d9c39 (squash-merge of feature/output-handling)
50
29
 
51
- ### Technical
52
-
53
- - **Version management**: Bumped all component versions to reflect new features
54
- - Main version: 1.1.9 → 1.2.0 (new feature addition)
55
- - Worm version: 1.0.4 → 1.1.0 (direction control + custom styles)
56
- - Ripple version: 1.0.5 → 1.1.0 (ends support)
57
- - Twirl version: 1.0.1 → 1.1.0 (ends support)
30
+ ## 1.3.1 - 2025-10-12
58
31
 
59
- ## [1.1.9] - 2025-10-10
32
+ ### Added
60
33
 
61
- ### Fixed
34
+ - `fill` subcommand: added `-c, --command COMMAND` so the determinate progress bar can run and capture command output like the other subcommands. This includes `--output-lines` and `--output-position` support for reserving terminal rows during capture.
62
35
 
63
- - **Worm animation line clearing**: Resolved issue where completion messages appeared alongside animation characters
64
- - Fixed stream mismatch where animations used stderr but completion messages used stdout
65
- - Implemented atomic operation combining line clearing and message output on stderr
66
- - Ensured clean line clearing for all scenarios (success, error, no completion message)
67
- - Updated tests to match new stderr-based completion message output
68
- - Clean output format: animation disappears completely before completion message appears
36
+ ### Changed
69
37
 
70
- ### Technical
38
+ - Bumped `FILL_VERSION` (patch) to reflect the new CLI behavior.
71
39
 
72
- - **Stream consistency**: All worm animation output (including completion messages) now uses stderr consistently
73
- - **Enhanced completion message display**: Single atomic stderr operation prevents race conditions between line clearing and message display
74
40
 
75
- ## [1.1.8] - 2025-10-10
41
+ ## 1.2.3 - 2025-10-11
76
42
 
77
43
  ### Added
78
44
 
79
- - **Intelligent fuzzy matching for twirl styles**: Enhanced twirl style selector with sophisticated pattern matching
80
- - Exact matches: Direct style name matching (case-insensitive)
81
- - Prefix matches: `ar` matches `arc` instead of `arrow` (shortest match priority)
82
- - Character-by-character fuzzy matches: `cls` matches `classic` (sequential character matching)
83
- - Substring fallback: Comprehensive matching for partial inputs
84
- - Works dynamically against all available indicator styles in `RubyProgress::INDICATORS`
85
-
86
- ### Improved
87
-
88
- - **Worm message spacing**: Enhanced visual formatting for worm animations
89
- - Automatic space insertion between `--message` text and animation
90
- - Clean formatting: `"Loading data ●··●·"` instead of `"Loading data●··●·"`
91
- - No extra spacing when no message is provided
92
- - Consistent behavior across all worm animation methods (standard, daemon, aggressive clearing)
93
-
94
- ### Technical
95
-
96
- - **Enhanced test coverage**: Added comprehensive fuzzy matching test suite for twirl styles
97
- - 13 test cases covering exact, prefix, fuzzy, and edge case scenarios
98
- - Validation of shortest match priority and character-order matching
99
- - Integration with existing comprehensive test coverage (maintained at 70.47%)
45
+ - Dedicated `fill` shim: added `bin/fill` that delegates to `prg fill`.
100
46
 
101
- ## [1.1.7] - 2025-10-10
47
+ ### Changed
102
48
 
103
- ### Added
49
+ - Version bumps: prg 1.2.2 → 1.2.3, fill 1.0.0 → 1.0.1
104
50
 
105
- - **Visual style previews**: Added `--show-styles` flag to all subcommands showing visual previews of animation styles
106
- - Global `prg --show-styles` displays all styles for all subcommands with visual examples
107
- - Subcommand-specific `prg <subcommand> --show-styles` shows only relevant styles
108
- - Ripple styles show "Progress" text with actual color/effect rendering
109
- - Worm styles display wave patterns like `··●⬤●··` for circles style
110
- - Twirl styles show spinner character sequences like `◜ ◠ ◝ ◞ ◡ ◟` for arc style
111
- - **Process management**: Added `--stop-all` flag for comprehensive process control
112
- - Global `prg --stop-all` stops all prg processes across all subcommands
113
- - Subcommand-specific `prg <subcommand> --stop-all` stops only processes for that animation type
114
- - Smart process detection excludes current process to prevent self-termination
115
- - Graceful termination using TERM signal for proper cleanup
51
+ ## 1.2.2 - 2025-10-11
116
52
 
117
53
  ### Improved
118
54
 
119
- - **Error handling**: Replaced verbose Ruby stack traces with clean, user-friendly error messages
120
- - Invalid command-line options now show simple "Invalid option: --flag-name" messages
121
- - Each error includes appropriate usage information and help guidance
122
- - Consistent error format across all subcommands (ripple, worm, twirl)
123
- - **Style discovery**: Enhanced distinction between `--list-styles` (simple name lists) and `--show-styles` (visual previews)
124
- - **Silent process management**: All `--stop` and `--stop-all` commands now operate silently
125
- - No status messages or confirmation output for cleaner automation
126
- - Exit code 0 when processes found and stopped successfully
127
- - Exit code 1 when no processes found to stop
128
- - **Terminal output separation**: Moved all animations to stderr for proper stream handling
129
- - Animations and progress indicators use stderr (status information)
130
- - Application output remains on stdout (program data)
131
- - Fixes daemon mode output interruption issues
132
- - **Enhanced process cleanup**: Improved daemon process termination reliability
133
- - Uses TERM signal first for graceful shutdown, followed by KILL if needed
134
- - Comprehensive process detection and cleanup across all subcommands
135
- - Better handling of orphaned processes
136
- - **Version display**: Enhanced `--version` output to show individual subcommand versions
137
- - Main version: `prg version 1.1.7`
138
- - Component versions: `ripple (v1.0.5)`, `worm (v1.0.2)`, `twirl (v1.0.0)`
139
- - Enables tracking of individual component changes
55
+ - Demo script enhancements: updated quick demo with better visual examples.
140
56
 
141
57
  ### Technical
142
58
 
143
- - **Test coverage**: Significantly improved test coverage from ~60% to 74.53%
144
- - Added comprehensive error handling tests
145
- - Enhanced daemon lifecycle testing
146
- - Improved edge case coverage for all animation types
147
- - Added version constant validation tests
148
-
149
- ## [1.1.4] - 2025-10-09
150
-
151
- ### Fixed
59
+ - Version alignment: synchronized demo script version display with actual gem version.
152
60
 
153
- - **Worm default message behavior**: Removed default "Processing" message from worm subcommand when no `--message` is provided for consistent behavior across all progress indicators
154
- - **Development environment**: Fixed `bin/prg` to use local library files instead of installed gem versions during development
61
+ ## 1.2.4 - 2025-10-12
155
62
 
156
- ## [1.1.3] - 2025-10-09
63
+ ### Added
157
64
 
158
- ### Fixed
65
+ - Small bug fixes and test stability improvements:
66
+ - Ensured SimpleCov finalization runs reliably across Ruby versions during tests.
67
+ - Minor CLI help text clarifications and version constant alignment.
159
68
 
160
- - **Twirl spinner animation**: Fixed spinner freezing during command execution by ensuring continuous animation loop
161
- - **Default message behavior**: Removed default "Processing" message when no `--message` is provided - now shows only spinner
162
- - **Daemon termination output**: Removed verbose "Stop signal sent to process" message for cleaner daemon workflows
69
+ ### Changed
163
70
 
164
- ## [1.1.2] - 2025-10-09
71
+ - Bumped gem version and synchronized component version constants where applicable.
72
+ - Messages now display cleanly at the beginning of a new line
73
+ - Affects all three commands: ripple, worm, and twirl
74
+ - Resolves issue where completion messages appeared mid-line after animation ended
75
+ - Improved professional appearance of CLI output
165
76
 
166
- ### Fixed
77
+ Technical
167
78
 
168
- - **Critical gem execution issue**: Fixed installed gem binaries not executing due to `__FILE__ == $PROGRAM_NAME` check failing when paths differ between gem binary location and RubyGems wrapper script
79
+ - **Enhanced display_completion method**: Added proper line clearing and cursor positioning
80
+ - Uses `re[2K` sequence followed by clean message display
81
+ - Updated test expectations to match new output format
82
+ - Maintains backward compatibility with existing functionality
169
83
 
170
- ## [1.1.1] - 2025-10-09
84
+ ## 1.2.0 - 2025-10-11
171
85
 
172
86
  ### Added
173
87
 
174
- - **New Twirl subcommand**: Extracted spinner functionality into dedicated `prg twirl` subcommand with 35+ spinner styles
175
- - **Enhanced daemon management**: Added `--daemon-as NAME` for named daemon instances creating `/tmp/ruby-progress/NAME.pid`
176
- - **Simplified daemon control**: Added `--stop-id NAME` and `--status-id NAME` for controlling named daemons
177
- - **Automatic flag implications**: `--stop-success`, `--stop-error`, and `--stop-id` now automatically imply `--stop`
178
- - **Global style listing**: Added `prg --list-styles` to show all available styles across all subcommands
179
- - **Unified style system**: Replaced ripple's `--rainbow` and `--inverse` flags with `--style` argument supporting `--style rainbow,inverse`
180
- - **Integrated case transformation**: Converted `--caps` flag to `--style caps` for consistent style system, supports combinations like `--style caps,inverse`
181
-
182
- ### Changed
88
+ - **--ends flag for all commands**: New universal option to add start/end characters around animations
89
+ - Accepts even-length strings split in half for start and end characters
90
+ - Works across all three commands: ripple, worm, and twirl
91
+ - Examples: `--ends "[]"` → `[animation]`, `--ends "<<>>"` `<<animation>>`
92
+ - Multi-byte character support for emojis: `--ends "🎯🎪"` `🎯animation🎪`
93
+ - Graceful fallback for invalid input (odd-length strings)
183
94
 
184
- - **Refactored CLI architecture**: Three-subcommand structure (ripple, worm, twirl) with consistent daemon management
185
- - **Improved option parsing**: Eliminated OptionParser ambiguities by using explicit `--stop-id`/`--status-id` instead of optional arguments
186
- - **Updated documentation**: Comprehensive README updates with new examples and cleaner daemon workflow syntax
187
- - **Enhanced gemspec**: Updated description from "Two different animated progress indicators" to "Animated progress indicators"
95
+ - **Comprehensive test coverage for new features**: Added extensive test suites
96
+ - Direction control tests: Forward-only vs bidirectional animation behavior
97
+ - Custom style tests: ASCII, Unicode, emoji, and mixed character pattern validation
98
+ - CLI integration tests: End-to-end testing for all new command-line options
99
+ - Ends functionality tests: Multi-byte character handling, error cases, help documentation
100
+ - Total: 58 new test examples covering all edge cases
188
101
 
189
- ### Deprecated
102
+ - **Worm direction control**: Fine-grained animation movement control
103
+ - `--direction forward` (or `-d f`): Animation moves only forward, resets at end
104
+ - `--direction bidirectional` (or `-d b`): Default back-and-forth movement
105
+ - Compatible with all worm styles including custom patterns
190
106
 
191
- - **Ripple style flags**: `--spinner`, `--rainbow`, `--inverse`, and `--caps` flags deprecated in favor of unified `--style` system (backward compatibility maintained)
107
+ - **Worm custom styles**: User-defined 3-character animation patterns
108
+ - Format: `--style custom=abc` where `abc` defines baseline, midline, peak characters
109
+ - ASCII support: `--style custom=_-=` → `___-=___`
110
+ - Unicode support: `--style custom=▫▪■` → geometric patterns
111
+ - Emoji support: `--style custom=🟦🟨🟥` → colorful animations
112
+ - Mixed characters: `--style custom=.🟡*` → combined ASCII and emoji
113
+ - Proper multi-byte character counting for accurate 3-character validation
114
+ - **Ripple style flags**: `--spinner`, `--rainbow`, `--inverse`, and `--caps` flags deprecated in favor of unified `--style` system (backward
115
+ compatibility maintained)
192
116
 
193
117
  ### Fixed
194
118
 
195
119
  - **OptionParser conflicts**: Resolved parsing issues with optional arguments that could consume following flags
196
120
  - **Daemon workflow**: Streamlined daemon start/stop workflow eliminating need for redundant flag combinations
197
121
 
198
- ## [1.0.1] - 2025-01-01
122
+ ## 1.0.1 - 2025-01-01
199
123
 
200
- ## [1.1.0] - 2025-10-09
124
+ ## 1.1.0 - 2025-10-09
201
125
 
202
126
  ### Added
203
127
 
204
128
  - Shared daemon helpers module `RubyProgress::Daemon` for default PID file, control message file, status, and stop logic
205
- - Unified daemon flags across ripple and worm: `--daemon`, `--status`, `--stop`, `--pid-file`, `--stop-success`, `--stop-error`, `--stop-checkmark`
129
+ - Unified daemon flags across ripple and worm: `--daemon`, `--status`, `--stop`, `--pid-file`, `--stop-success`, `--stop-error`,
130
+ `--stop-checkmark`
206
131
  - Ripple: daemon parity with worm, including clean shutdown on SIGUSR1/TERM/HUP/INT
207
132
 
208
133
  ### Changed
@@ -210,7 +135,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
210
135
  - `bin/prg` now delegates status/stop/default PID handling to `RubyProgress::Daemon`
211
136
  - README updated with new daemon usage examples and flag descriptions
212
137
 
213
- ### Deprecated
138
+ Deprecated
214
139
 
215
140
  - `--stop-pid` remains available but is deprecated in favor of `--stop [--pid-file FILE]`
216
141
 
@@ -240,18 +165,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
240
165
  - Fixed duplicate error messages in Worm error handling
241
166
  - Improved signal handling and cursor management
242
167
 
243
- ## [1.0.0] - 2025-10-09
168
+ ## 1.0.0 - 2025-10-09
244
169
 
245
170
  ### Added
246
171
 
247
172
  - Initial release with two progress indicators:
248
- - Ripple: Text ripple animation with 30+ spinner styles, rainbow effects, and command execution
249
- - Worm: Unicode wave animation with multiple styles and configurable options
173
+ - Ripple: Text ripple animation with 30+ spinner styles, rainbow effects, and command execution
174
+ - Worm: Unicode wave animation with multiple styles and configurable options
250
175
  - Command-line interfaces for both tools
251
176
  - Support for custom speeds, messages, and styling options
252
177
  - Integration with system commands and process monitoring
253
178
 
254
- [1.1.1]: https://github.com/ttscoff/ruby-progress/releases/tag/v1.1.1
255
- [1.1.0]: https://github.com/ttscoff/ruby-progress/releases/tag/v1.1.0
256
- [1.0.1]: https://github.com/ttscoff/ruby-progress/releases/tag/v1.0.1
257
- [1.0.0]: https://github.com/ttscoff/ruby-progress/releases/tag/v1.0.0
179
+
data/DEMO_SCRIPTS.md ADDED
@@ -0,0 +1,162 @@
1
+ # Ruby Progress Gem - Demo Scripts
2
+
3
+ This directory contains three demo scripts designed to showcase the ruby-progress gem's features for different purposes.
4
+
5
+ ## Demo Scripts Overview
6
+
7
+ ### 1. `demo_screencast.rb` - Full Feature Demo
8
+ **Purpose**: Comprehensive screencast demonstration with narration pauses
9
+ **Duration**: ~10-15 minutes
10
+ **Best for**: Complete feature showcase, video recordings, presentations
11
+
12
+ **Features demonstrated**:
13
+ - All three commands (ripple, worm, twirl)
14
+ - Built-in styles and variations
15
+ - Universal --ends flag (NEW in v1.2.0)
16
+ - Worm direction control (NEW in v1.2.0)
17
+ - Custom worm styles (NEW in v1.2.0)
18
+ - Error handling and success messages
19
+ - Feature combinations
20
+
21
+ **Usage**:
22
+ ```bash
23
+ ./demo_screencast.rb
24
+ # or
25
+ ruby demo_screencast.rb
26
+ ```
27
+
28
+ ### 2. `quick_demo.rb` - Essential Features
29
+ **Purpose**: Quick demonstration of key features
30
+ **Duration**: ~3-5 minutes
31
+ **Best for**: Quick testing, feature highlights, social media clips
32
+
33
+ **Features demonstrated**:
34
+ - Universal --ends flag examples
35
+ - Custom worm styles with emoji
36
+ - Direction control
37
+ - Error handling
38
+ - Feature combinations
39
+
40
+ **Usage**:
41
+ ```bash
42
+ ./quick_demo.rb
43
+ # or
44
+ ruby quick_demo.rb
45
+ ```
46
+
47
+ ### 3. `readme_demo.rb` - Documentation Examples
48
+ **Purpose**: Clean examples perfect for README and documentation
49
+ **Duration**: Variable (can run sections independently)
50
+ **Best for**: Creating documentation examples, README updates, tutorials
51
+
52
+ **Features demonstrated**:
53
+ - Basic usage examples
54
+ - Style variations
55
+ - New v1.2.0 features
56
+ - Advanced features
57
+
58
+ **Usage**:
59
+ ```bash
60
+ # Run all examples
61
+ ./readme_demo.rb
62
+
63
+ # Run specific sections
64
+ ./readme_demo.rb basic # Basic usage only
65
+ ./readme_demo.rb styles # Style variations only
66
+ ./readme_demo.rb new # New v1.2.0 features only
67
+ ./readme_demo.rb advanced # Advanced features only
68
+ ```
69
+
70
+ ## Customization Tips
71
+
72
+ ### Adjusting Sleep Times
73
+ All scripts use `--command 'sleep X'` to simulate work. You can adjust timing by modifying the sleep values:
74
+
75
+ - **Ripple**: 3-4 seconds shows the expanding animation well
76
+ - **Worm**: 4-6 seconds demonstrates the full progress bar cycle
77
+ - **Twirl**: 2-3 seconds is sufficient for spinner animations
78
+
79
+ ### Adding Your Own Examples
80
+ To add new examples, follow this pattern:
81
+
82
+ ```ruby
83
+ def your_demo_method
84
+ puts "Description of what this demonstrates:"
85
+ run_cmd("command --option 'value' --command 'sleep X' --success 'Message!'")
86
+ puts "\n"
87
+ end
88
+ ```
89
+
90
+ ### Modifying Pauses
91
+ In `demo_screencast.rb`, you can adjust pause durations:
92
+
93
+ ```ruby
94
+ pause_for_narration(seconds) # For narration breaks
95
+ pause_between_demos(seconds) # Between demonstrations
96
+ ```
97
+
98
+ ## Example Commands Demonstrated
99
+
100
+ ### Universal --ends Flag
101
+ ```bash
102
+ prg ripple 'Loading...' --ends '[]' --command 'sleep 3' --success 'Complete!'
103
+ prg worm --length 10 --ends '<<>>' --command 'sleep 4' --success 'Finished!'
104
+ prg twirl --ends '🎯🎪' --command 'sleep 2' --success 'Done!'
105
+ ```
106
+
107
+ ### Custom Worm Styles
108
+ ```bash
109
+ prg worm --length 10 --style custom=_-= --command 'sleep 4' --success 'ASCII style!'
110
+ prg worm --length 10 --style custom=▫▪■ --command 'sleep 4' --success 'Unicode blocks!'
111
+ prg worm --length 10 --style custom=🟦🟨🟥 --command 'sleep 4' --success 'Emoji colors!'
112
+ ```
113
+
114
+ ### Direction Control
115
+ ```bash
116
+ prg worm --length 10 --direction forward --command 'sleep 5' --success 'Forward only!'
117
+ prg worm --length 10 --direction bidirectional --command 'sleep 5' --success 'Back and forth!'
118
+ ```
119
+
120
+ ### Feature Combinations
121
+ ```bash
122
+ prg worm --length 10 --style custom=.🟡* --direction forward --ends '【】' --command 'sleep 4' --success 'All features!'
123
+ ```
124
+
125
+ ## Recording Tips
126
+
127
+ ### For Screencasts
128
+ 1. Use `demo_screencast.rb` for full feature coverage
129
+ 2. Terminal window should be at least 80 characters wide
130
+ 3. Consider using a terminal recorder like `asciinema`
131
+ 4. The script includes natural pause points for narration
132
+
133
+ ### For Quick Demos
134
+ 1. Use `quick_demo.rb` for fast demonstrations
135
+ 2. Perfect for social media clips or quick feature highlights
136
+ 3. Focuses on the most visually impressive features
137
+
138
+ ### For Documentation
139
+ 1. Use `readme_demo.rb` to generate clean command-line examples
140
+ 2. Output can be copied directly into documentation
141
+ 3. Sectioned approach allows focused demonstrations
142
+
143
+ ## Troubleshooting
144
+
145
+ ### Common Issues
146
+ - **"Please provide text to animate"**: Some commands require a message argument
147
+ - **"Invalid option"**: Check option names (some flags changed between versions)
148
+ - **Animation not visible**: Ensure terminal supports the characters being used
149
+
150
+ ### Solutions
151
+ - Always include a message for ripple: `prg ripple 'Loading...'`
152
+ - Check `prg --help` for current option names
153
+ - Test with basic ASCII characters first, then add Unicode/emoji
154
+
155
+ ## Script Dependencies
156
+
157
+ All scripts require:
158
+ - Ruby (tested with Ruby 3.4.4)
159
+ - The ruby-progress gem (installed locally or via `gem install ruby-progress`)
160
+ - Terminal with Unicode support (for emoji examples)
161
+
162
+ The scripts automatically detect the gem location and use the local development version if run from the gem directory.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-progress (1.2.0)
4
+ ruby-progress (1.3.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/