Changelog
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog. This project adheres to Semantic Versioning.
Unreleased
Added
Changed
Fixed
Removed
0.3.1 - 2025-12-28
Added
-
Ruby 4 Support: Updated magnus FFI bindings to use the modern API for Ruby 4.0.0 compatibility.
0.3.0 - 2025-12-28
Added
-
The Escape Hatch (Ruby Render Callback): Added the ability to define custom widgets in pure Ruby by implementing a
render(area, buffer)method. TheBufferobject provides low-level drawing primitives likeset_string, allowing developers to create custom TUI components without writing Rust code. -
Clear Widget: Added the
Clearwidget, which resets the terminal buffer in the area it is rendered. This is essential for creating opaque popups and modals that prevent background styles from ābleedingā through transparent widgets. -
Interactive Table Selection: The
Tablewidget now supports row selection withselected_row,highlight_style, andhighlight_symbolparameters. This enables building interactive data grids and file explorers where users can navigate through rows using keyboard input. -
Scrollable Paragraphs: The
Paragraphwidget now supports ascrollparameter that accepts a(y, x)array to scroll content vertically and horizontally. This enables viewing long text content that exceeds the visible area, such as logs or documents. The parameter order matches ratatuiās convention.
Changed
-
Center Widget: Removed the implicit
Clearcall from theCenterwidget.Centeris now a pure layout widget, requiring an explicitClearwidget if background clearing is desired. This restores correct behavior for transparent overlays.
0.2.0 - 2025-12-24
Added
-
DSL for Simpler Apps: Introduced
RatatuiRuby.main_loop, a new entrypoint that simplifies application structure when you donāt need control of the event loop or application lifecycle. -
Calendar Widget: Added the
Calendarwidget, allowing you to display monthly views and visualize date-based information. -
Generic Charts: Implemented the full
Chartwidget, which supersedes the now-deprecatedLineChartandBarChartwidgets, giving you more freedom to visualize data sets. -
Enhanced List Styling: You can now customize the appearance of selected items in a
Listusinghighlight_styleandhighlight_symbol. -
Broader Ruby Support: Added support for a wider range of Ruby versions: every non-EOL version. The latest preview of Ruby 4.0 is tested in CI, but not supported.
-
Dev Tools: Added internal Rake tasks for managing historical documentation and SemVer checks.
0.1.0 - 2025-12-22
Added
-
First Release: Initial public release of ratatui_ruby, bringing the power of the Rust ratatui library to Rubyists!
-
Core Widget Set: Includes a comprehensive suite of widgets to get you started:
-
Block,Borders, andParagraphfor basic content. -
ListandTablefor structured data. -
GaugeandSparklinefor progress and metrics. -
Tabsfor navigation. -
Canvasfor drawing shapes (Lines, Circles, Rectangles, Maps). -
Layout System: A flexible layout engine using
Flex,Layout, andConstraintsto build responsive interfaces that adapt to any terminal size. -
Forms & Layers: Primitives like
OverlayandCenterfor creating modal dialogs, plus aCursorwidget for text input interactions. -
Styling: Full support for
Ratatuiās styling primitives, including modifiers and RGB/ANSI colors. -
Input Handling: Robust handling for both Keyboard and Mouse events.
-
Testing Support: Included
RatatuiRuby::TestHelperand RSpec integration to make testing your TUI applications possible.