Module: AsciinemaWin
- Defined in:
- lib/asciinema_win.rb,
lib/asciinema_win.rb,
lib/asciinema_win/cli.rb,
lib/asciinema_win/export.rb,
lib/asciinema_win/player.rb,
lib/asciinema_win/themes.rb,
lib/asciinema_win/version.rb,
lib/asciinema_win/recorder.rb,
lib/asciinema_win/asciicast.rb,
lib/asciinema_win/ansi_parser.rb,
lib/asciinema_win/win32_screen.rb,
lib/asciinema_win/screen_buffer.rb,
lib/asciinema_win/output_organizer.rb
Overview
AsciinemaWin - Native Windows Terminal Recorder in Pure Ruby
A zero-dependency terminal recording and playback system for Windows. Uses Ruby’s built-in Fiddle for Win32 Console API access and integrates Rich-Ruby for terminal rendering. Compatible with asciinema’s asciicast v2 format.
Defined Under Namespace
Modules: Asciicast, Export, OutputOrganizer, Themes, Win32Screen Classes: AnsiParser, CLI, Error, ExportError, FormatError, PlatformError, PlaybackError, Player, RawPlayer, Recorder, RecordingError, ScreenBuffer
Constant Summary collapse
- VERSION =
Returns Gem version following semantic versioning.
"0.3.0"
Class Method Summary collapse
-
.cat(input_path) ⇒ void
Output recording to stdout without timing (for piping).
-
.info(input_path) ⇒ Hash
Get metadata about a recording.
-
.play(input_path, speed: 1.0, idle_time_limit: nil, pause_on_markers: false) ⇒ void
Play back a recording from a file.
-
.record(output_path, title: nil, command: nil, idle_time_limit: 2.0, env_vars: %w[SHELL TERM],) {|Recorder| ... } ⇒ void
Record a terminal session to a file.
-
.run(args = ARGV) ⇒ Integer
Run the CLI with the given arguments.
Class Method Details
.cat(input_path) ⇒ void
This method returns an undefined value.
Output recording to stdout without timing (for piping)
117 118 119 120 121 122 |
# File 'lib/asciinema_win.rb', line 117 def cat(input_path) # RawPlayer dumps output events with no timing and no screen-control # escapes, so the result is safe to pipe (matches the `cat` CLI command). player = RawPlayer.new player.play(input_path) end |
.info(input_path) ⇒ Hash
Get metadata about a recording
134 135 136 |
# File 'lib/asciinema_win.rb', line 134 def info(input_path) Asciicast::Reader.info(input_path) end |
.play(input_path, speed: 1.0, idle_time_limit: nil, pause_on_markers: false) ⇒ void
This method returns an undefined value.
Play back a recording from a file
102 103 104 105 106 107 108 109 110 |
# File 'lib/asciinema_win.rb', line 102 def play(input_path, speed: 1.0, idle_time_limit: nil, pause_on_markers: false) player = Player.new( speed: speed, idle_time_limit: idle_time_limit, pause_on_markers: pause_on_markers ) player.play(input_path) end |
.record(output_path, title: nil, command: nil, idle_time_limit: 2.0, env_vars: %w[SHELL TERM],) {|Recorder| ... } ⇒ void
This method returns an undefined value.
Record a terminal session to a file
74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/asciinema_win.rb', line 74 def record(output_path, title: nil, command: nil, idle_time_limit: 2.0, env_vars: %w[SHELL TERM], &block) ensure_windows! recorder = Recorder.new( title: title, command: command, idle_time_limit: idle_time_limit, env_vars: env_vars ) recorder.record(output_path, &block) end |