Class: RatatuiRuby::Terminal

Inherits:
Object
  • Object
show all
Extended by:
Capabilities
Defined in:
lib/ratatui_ruby/terminal.rb,
lib/ratatui_ruby/terminal/viewport.rb,
lib/ratatui_ruby/terminal/capabilities.rb

Overview

Terminal configuration and viewport settings.

Your app needs to choose how it occupies the terminal. Fullscreen apps take over the whole screen and clear on exit. Inline apps run in a fixed region and persist in scrollback. Configuring this manually is error-prone.

This module handles the choice. It defines viewport modes and their parameters.

See Also:

Defined Under Namespace

Modules: Capabilities Classes: Viewport

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Capabilities

available_color_count, color_support, dumb?, force_color?, force_color_output, interactive?, no_color?, supports_keyboard_enhancement?, tty?

Constructor Details

#initialize(viewport: :fullscreen, height: nil) ⇒ Terminal

Creates a new Terminal instance.

[viewport] Symbol or Viewport object (:fullscreen or :inline) [height] Integer height for inline viewports



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/ratatui_ruby/terminal.rb', line 38

def initialize(viewport: :fullscreen, height: nil)
  @viewport = resolve_viewport(viewport, height)

  # Call Rust FFI to create instance and get ID
  # For now, only test backend is supported (real crossterm coming later)
  @terminal_id = self.class._init_test_terminal_instance(
    80, # default width for test
    24, # default height for test
    @viewport.type.to_s,
    @viewport.height
  )
end

Instance Attribute Details

#terminal_idObject (readonly)

:attr_reader: terminal_id Unique identifier for this terminal instance in Rust (Integer).



32
33
34
# File 'lib/ratatui_ruby/terminal.rb', line 32

def terminal_id
  @terminal_id
end

Instance Method Details

#sizeObject

Returns the terminal size as a Layout::Rect Rust constructs the Rect object directly (not a hash!)



53
54
55
# File 'lib/ratatui_ruby/terminal.rb', line 53

def size
  self.class._get_terminal_size_instance(@terminal_id)
end