Class: AsciinemaWin::Asciicast::Writer
- Inherits:
-
Object
- Object
- AsciinemaWin::Asciicast::Writer
- Defined in:
- lib/asciinema_win/asciicast.rb
Overview
Writer for creating asciicast recordings
Instance Attribute Summary collapse
-
#header ⇒ Header
readonly
Recording header.
-
#last_event_time ⇒ Float
readonly
Last event time (for duration calculation).
Instance Method Summary collapse
-
#close ⇒ void
Close the writer and finalize the recording.
-
#closed? ⇒ Boolean
Whether the writer is closed.
-
#event_count ⇒ Integer
Number of events written.
-
#initialize(io, header) ⇒ Writer
constructor
Create a new writer.
-
#write_event(event) ⇒ void
Write a generic event.
-
#write_input(time, data) ⇒ void
Write an input event.
-
#write_marker(time, label = "") ⇒ void
Write a marker event.
-
#write_output(time, data) ⇒ void
Write an output event.
-
#write_resize(time, width, height) ⇒ void
Write a resize event.
Constructor Details
#initialize(io, header) ⇒ Writer
Create a new writer
306 307 308 309 310 311 312 313 314 315 |
# File 'lib/asciinema_win/asciicast.rb', line 306 def initialize(io, header) @io = io @header = header @last_event_time = 0.0 @closed = false @event_count = 0 # Write header immediately write_header end |
Instance Attribute Details
#header ⇒ Header (readonly)
Returns Recording header.
297 298 299 |
# File 'lib/asciinema_win/asciicast.rb', line 297 def header @header end |
#last_event_time ⇒ Float (readonly)
Returns Last event time (for duration calculation).
300 301 302 |
# File 'lib/asciinema_win/asciicast.rb', line 300 def last_event_time @last_event_time end |
Instance Method Details
#close ⇒ void
This method returns an undefined value.
Close the writer and finalize the recording
369 370 371 372 373 374 |
# File 'lib/asciinema_win/asciicast.rb', line 369 def close return if @closed @closed = true @io.flush if @io.respond_to?(:flush) end |
#closed? ⇒ Boolean
Returns Whether the writer is closed.
377 378 379 |
# File 'lib/asciinema_win/asciicast.rb', line 377 def closed? @closed end |
#event_count ⇒ Integer
Returns Number of events written.
382 383 384 |
# File 'lib/asciinema_win/asciicast.rb', line 382 def event_count @event_count end |
#write_event(event) ⇒ void
This method returns an undefined value.
Write a generic event
358 359 360 361 362 363 364 |
# File 'lib/asciinema_win/asciicast.rb', line 358 def write_event(event) raise RecordingError, "Writer is closed" if @closed @io.puts(event.to_json) @last_event_time = event.time @event_count += 1 end |
#write_input(time, data) ⇒ void
This method returns an undefined value.
Write an input event
331 332 333 |
# File 'lib/asciinema_win/asciicast.rb', line 331 def write_input(time, data) write_event(Event.new(time, EventType::INPUT, data)) end |
#write_marker(time, label = "") ⇒ void
This method returns an undefined value.
Write a marker event
350 351 352 |
# File 'lib/asciinema_win/asciicast.rb', line 350 def write_marker(time, label = "") write_event(Event.new(time, EventType::MARKER, label)) end |