Sure. I was probably trying to be too polite and didn't want to use the word "abandoned", but that's probably a better term for the library at this point. There's a good amount of open issues and PRs in many of the component gems that haven't been addressed in years and requests to help maintain it have gone unanswered[0].
And my wife, wonderful as always, helped critique the writing! My RadioMenu class's comments (in the "See More: Inline menu example" expando-section) were far worse before she helped.
I just made a new installer for Discourse on CharmRuby, now I gotta check this out and see if porting is feasible. Hopefully this reduces the app size, that is quite large with CharmRuby
That's gotta be part of it. But I think another important part is how TUIs have important restrictions that lead to surprisingly delightful applications despite their downsides:
- You don't have control over font size and your color palette can be limited (and chosen by the user in their Terminal settings), so it's hard to go too off-the-rails in aesthetic design
- You work on a strict character grid, so it's hard to get things like padding, margin, and leading wrong.
- You can't assume the use of a mouse, so everything has to work on keyboard shortcuts. This usually leads to extremely power-user-friendly tools. Plus, keyboard-driven, power-user-friendly UIs are hot right now, even on the web (Linear, Fernand, etc.).
Does it have proper support for opening an external editor (via $EDITOR like nano, vim, etc?)? I ran into issues with that in Ink and had to switch over to Bubbletea, but I'd love to use Ruby instead of Go
Yes! While there's nothing built-in for that, you have full control over when you enter or exit raw mode, so your TUI can support opening an external editor. The TL;DR is you need to call `RatatuiRuby.restore_terminal` before handing off to $EDITOR, and you can call `RatatuiRuby.init_terminal` again to re-enter your TUI.
Also, if you enjoy Ink and Bubbletea, you probably enjoy MVU. If that's the case, check out the upcoming Rooibos framework I'm building on RatatuiRuby: https://rooibos.run. (Caveat: it doesn't yet have a way to restore/init the terminal, but I clearly need to make that happen.)
I’m gonna look into this. I was originally going to use the curses gem for my ruby tui apps but dealing with straight curses gets annoying quick. Thanks!
However, I feel like it's in maintenance mode at this point, so glad to see some new options available.
[0] https://github.com/piotrmurach/tty-prompt/issues/210
And my wife, wonderful as always, helped critique the writing! My RadioMenu class's comments (in the "See More: Inline menu example" expando-section) were far worse before she helped.
- You don't have control over font size and your color palette can be limited (and chosen by the user in their Terminal settings), so it's hard to go too off-the-rails in aesthetic design
- You work on a strict character grid, so it's hard to get things like padding, margin, and leading wrong.
- You can't assume the use of a mouse, so everything has to work on keyboard shortcuts. This usually leads to extremely power-user-friendly tools. Plus, keyboard-driven, power-user-friendly UIs are hot right now, even on the web (Linear, Fernand, etc.).
Dead Comment
[0]: https://git.sr.ht/~kerrick/ratatui_ruby/tree/783a08eabe2307f...
[1]: https://www.ratatui-ruby.dev/docs/v1.0/examples/app_color_pi...
Does it have proper support for opening an external editor (via $EDITOR like nano, vim, etc?)? I ran into issues with that in Ink and had to switch over to Bubbletea, but I'd love to use Ruby instead of Go
Here's an example: https://www.ratatui-ruby.dev/docs/trunk/examples/app_externa...
Also, if you enjoy Ink and Bubbletea, you probably enjoy MVU. If that's the case, check out the upcoming Rooibos framework I'm building on RatatuiRuby: https://rooibos.run. (Caveat: it doesn't yet have a way to restore/init the terminal, but I clearly need to make that happen.)
https://github.com/marcoroth/bubbletea-ruby
[0]: https://news.ycombinator.com/item?id=4017933
[1]: https://kerrick.github.io/google/