ruby-progress 1.2.0 → 1.2.4
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 +4 -4
- data/CHANGELOG.md +59 -169
- data/DEMO_SCRIPTS.md +162 -0
- data/Gemfile.lock +1 -1
- data/README.md +116 -53
- data/Rakefile +7 -0
- data/bin/fill +10 -0
- data/bin/prg +50 -1033
- data/demo_screencast.rb +296 -0
- data/experimental_terminal.rb +7 -0
- data/lib/ruby-progress/cli/fill_options.rb +193 -0
- data/lib/ruby-progress/cli/ripple_cli.rb +150 -0
- data/lib/ruby-progress/cli/ripple_options.rb +148 -0
- data/lib/ruby-progress/cli/twirl_cli.rb +173 -0
- data/lib/ruby-progress/cli/twirl_options.rb +136 -0
- data/lib/ruby-progress/cli/twirl_runner.rb +130 -0
- data/lib/ruby-progress/cli/twirl_spinner.rb +78 -0
- data/lib/ruby-progress/cli/worm_cli.rb +75 -0
- data/lib/ruby-progress/cli/worm_options.rb +156 -0
- data/lib/ruby-progress/cli/worm_runner.rb +260 -0
- data/lib/ruby-progress/fill.rb +211 -0
- data/lib/ruby-progress/fill_cli.rb +219 -0
- data/lib/ruby-progress/utils.rb +16 -2
- data/lib/ruby-progress/version.rb +8 -4
- data/lib/ruby-progress/worm.rb +2 -177
- data/lib/ruby-progress.rb +1 -0
- data/quick_demo.rb +134 -0
- data/readme_demo.rb +128 -0
- data/ruby-progress.gemspec +40 -0
- data/scripts/run_matrix_mise.fish +41 -0
- data/test_daemon_interruption.rb +2 -0
- data/test_daemon_orphan.rb +1 -0
- metadata +21 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 446ecad2fd85e194293130a638b9e986270c5849ad5cd8a65733b5c2f01198df
|
4
|
+
data.tar.gz: 35686adf5664171676333a89d48f3f296dcc03751636eea49711a3885ea86d4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5cd10f336fae3e523e00c70bc9939f6b4162b1b9473424e1c481b0aa9f077b5f0e08037bb53f96f23f5d07a38a0ac5c72947daf90d545127736f002db692c77
|
7
|
+
data.tar.gz: 86f820e4b75c810e45801f1a214d219f7103e386e4c53bd733eb22a231a3162900b0b011c566f2d134b0a78e06947d33ddf1e2f9fea5c8a35552f56bc4b1f7e0
|
data/CHANGELOG.md
CHANGED
@@ -1,208 +1,101 @@
|
|
1
|
-
|
1
|
+
|
2
|
+
# CHANGELOG
|
2
3
|
|
3
4
|
All notable changes to this project will be documented in this file.
|
4
5
|
|
5
6
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
6
7
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
8
|
|
8
|
-
##
|
9
|
+
## 1.2.3 - 2025-10-11
|
9
10
|
|
10
11
|
### Added
|
11
12
|
|
12
|
-
-
|
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)
|
18
|
-
|
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
|
25
|
-
|
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
|
30
|
-
|
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
|
38
|
-
|
39
|
-
### Enhanced
|
13
|
+
- Dedicated `fill` shim: added `bin/fill` that delegates to `prg fill`.
|
40
14
|
|
41
|
-
|
42
|
-
- `Utils.parse_ends()`: Universal start/end character parsing
|
43
|
-
- Eliminates code duplication across animation classes
|
44
|
-
- Consistent behavior and error handling
|
45
|
-
|
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
|
50
|
-
|
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)
|
58
|
-
|
59
|
-
## [1.1.9] - 2025-10-10
|
60
|
-
|
61
|
-
### Fixed
|
62
|
-
|
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
|
69
|
-
|
70
|
-
### Technical
|
71
|
-
|
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
|
-
|
75
|
-
## [1.1.8] - 2025-10-10
|
15
|
+
### Changed
|
76
16
|
|
77
|
-
|
17
|
+
- Version bumps: prg 1.2.2 → 1.2.3, fill 1.0.0 → 1.0.1
|
78
18
|
|
79
|
-
|
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`
|
19
|
+
## 1.2.2 - 2025-10-11
|
85
20
|
|
86
21
|
### Improved
|
87
22
|
|
88
|
-
-
|
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)
|
23
|
+
- Demo script enhancements: updated quick demo with better visual examples.
|
93
24
|
|
94
25
|
### Technical
|
95
26
|
|
96
|
-
-
|
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%)
|
27
|
+
- Version alignment: synchronized demo script version display with actual gem version.
|
100
28
|
|
101
|
-
##
|
29
|
+
## 1.2.4 - 2025-10-12
|
102
30
|
|
103
31
|
### Added
|
104
32
|
|
105
|
-
-
|
106
|
-
|
107
|
-
|
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
|
33
|
+
- Small bug fixes and test stability improvements:
|
34
|
+
- Ensured SimpleCov finalization runs reliably across Ruby versions during tests.
|
35
|
+
- Minor CLI help text clarifications and version constant alignment.
|
116
36
|
|
117
|
-
###
|
118
|
-
|
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
|
140
|
-
|
141
|
-
### Technical
|
142
|
-
|
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
|
152
|
-
|
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
|
155
|
-
|
156
|
-
## [1.1.3] - 2025-10-09
|
157
|
-
|
158
|
-
### Fixed
|
159
|
-
|
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
|
37
|
+
### Changed
|
163
38
|
|
164
|
-
|
39
|
+
- Bumped gem version and synchronized component version constants where applicable.
|
40
|
+
- Messages now display cleanly at the beginning of a new line
|
41
|
+
- Affects all three commands: ripple, worm, and twirl
|
42
|
+
- Resolves issue where completion messages appeared mid-line after animation ended
|
43
|
+
- Improved professional appearance of CLI output
|
165
44
|
|
166
|
-
|
45
|
+
Technical
|
167
46
|
|
168
|
-
- **
|
47
|
+
- **Enhanced display_completion method**: Added proper line clearing and cursor positioning
|
48
|
+
- Uses `re[2K` sequence followed by clean message display
|
49
|
+
- Updated test expectations to match new output format
|
50
|
+
- Maintains backward compatibility with existing functionality
|
169
51
|
|
170
|
-
##
|
52
|
+
## 1.2.0 - 2025-10-11
|
171
53
|
|
172
54
|
### Added
|
173
55
|
|
174
|
-
-
|
175
|
-
-
|
176
|
-
-
|
177
|
-
-
|
178
|
-
-
|
179
|
-
-
|
180
|
-
- **Integrated case transformation**: Converted `--caps` flag to `--style caps` for consistent style system, supports combinations like `--style caps,inverse`
|
181
|
-
|
182
|
-
### Changed
|
56
|
+
- **--ends flag for all commands**: New universal option to add start/end characters around animations
|
57
|
+
- Accepts even-length strings split in half for start and end characters
|
58
|
+
- Works across all three commands: ripple, worm, and twirl
|
59
|
+
- Examples: `--ends "[]"` → `[animation]`, `--ends "<<>>"` → `<<animation>>`
|
60
|
+
- Multi-byte character support for emojis: `--ends "🎯🎪"` → `🎯animation🎪`
|
61
|
+
- Graceful fallback for invalid input (odd-length strings)
|
183
62
|
|
184
|
-
- **
|
185
|
-
-
|
186
|
-
-
|
187
|
-
-
|
63
|
+
- **Comprehensive test coverage for new features**: Added extensive test suites
|
64
|
+
- Direction control tests: Forward-only vs bidirectional animation behavior
|
65
|
+
- Custom style tests: ASCII, Unicode, emoji, and mixed character pattern validation
|
66
|
+
- CLI integration tests: End-to-end testing for all new command-line options
|
67
|
+
- Ends functionality tests: Multi-byte character handling, error cases, help documentation
|
68
|
+
- Total: 58 new test examples covering all edge cases
|
188
69
|
|
189
|
-
|
70
|
+
- **Worm direction control**: Fine-grained animation movement control
|
71
|
+
- `--direction forward` (or `-d f`): Animation moves only forward, resets at end
|
72
|
+
- `--direction bidirectional` (or `-d b`): Default back-and-forth movement
|
73
|
+
- Compatible with all worm styles including custom patterns
|
190
74
|
|
191
|
-
- **
|
75
|
+
- **Worm custom styles**: User-defined 3-character animation patterns
|
76
|
+
- Format: `--style custom=abc` where `abc` defines baseline, midline, peak characters
|
77
|
+
- ASCII support: `--style custom=_-=` → `___-=___`
|
78
|
+
- Unicode support: `--style custom=▫▪■` → geometric patterns
|
79
|
+
- Emoji support: `--style custom=🟦🟨🟥` → colorful animations
|
80
|
+
- Mixed characters: `--style custom=.🟡*` → combined ASCII and emoji
|
81
|
+
- Proper multi-byte character counting for accurate 3-character validation
|
82
|
+
- **Ripple style flags**: `--spinner`, `--rainbow`, `--inverse`, and `--caps` flags deprecated in favor of unified `--style` system (backward
|
83
|
+
compatibility maintained)
|
192
84
|
|
193
85
|
### Fixed
|
194
86
|
|
195
87
|
- **OptionParser conflicts**: Resolved parsing issues with optional arguments that could consume following flags
|
196
88
|
- **Daemon workflow**: Streamlined daemon start/stop workflow eliminating need for redundant flag combinations
|
197
89
|
|
198
|
-
##
|
90
|
+
## 1.0.1 - 2025-01-01
|
199
91
|
|
200
|
-
##
|
92
|
+
## 1.1.0 - 2025-10-09
|
201
93
|
|
202
94
|
### Added
|
203
95
|
|
204
96
|
- 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`,
|
97
|
+
- Unified daemon flags across ripple and worm: `--daemon`, `--status`, `--stop`, `--pid-file`, `--stop-success`, `--stop-error`,
|
98
|
+
`--stop-checkmark`
|
206
99
|
- Ripple: daemon parity with worm, including clean shutdown on SIGUSR1/TERM/HUP/INT
|
207
100
|
|
208
101
|
### Changed
|
@@ -210,7 +103,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
210
103
|
- `bin/prg` now delegates status/stop/default PID handling to `RubyProgress::Daemon`
|
211
104
|
- README updated with new daemon usage examples and flag descriptions
|
212
105
|
|
213
|
-
|
106
|
+
Deprecated
|
214
107
|
|
215
108
|
- `--stop-pid` remains available but is deprecated in favor of `--stop [--pid-file FILE]`
|
216
109
|
|
@@ -240,18 +133,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
240
133
|
- Fixed duplicate error messages in Worm error handling
|
241
134
|
- Improved signal handling and cursor management
|
242
135
|
|
243
|
-
##
|
136
|
+
## 1.0.0 - 2025-10-09
|
244
137
|
|
245
138
|
### Added
|
246
139
|
|
247
140
|
- Initial release with two progress indicators:
|
248
|
-
|
249
|
-
|
141
|
+
- Ripple: Text ripple animation with 30+ spinner styles, rainbow effects, and command execution
|
142
|
+
- Worm: Unicode wave animation with multiple styles and configurable options
|
250
143
|
- Command-line interfaces for both tools
|
251
144
|
- Support for custom speeds, messages, and styling options
|
252
145
|
- Integration with system commands and process monitoring
|
253
146
|
|
254
|
-
|
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
|
147
|
+
|
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.
|