95 lines
2.7 KiB
Markdown
95 lines
2.7 KiB
Markdown
# DynamicCursesInput
|
|
|
|
DynamicCursesInput is a Ruby gem that provides a simple and intuitive way to handle user input in a Curses-based terminal user interface (TUI). It allows for dynamic input handling, including cursor movement and inline character addition and deletion.
|
|
|
|
If you'd like to support PixelRidge Softworks OpenSource Development, check out our [Patreon](https://patreon.com/PixelRidgeSoftworksOSP)
|
|
If you need more direct help, join our [Discord](https://discord.pixelridgesoftworks.com)
|
|
|
|
## Table of Contents
|
|
|
|
- [Installation](#installation)
|
|
- [Usage](#usage)
|
|
- [Documentation](#documentation)
|
|
- [Dependencies](#dependencies)
|
|
- [FAQs](#faqs)
|
|
- [Troubleshooting](#troubleshooting)
|
|
- [Contribution Guidelines](#contribution-guidelines)
|
|
- [License](#license)
|
|
|
|
## Installation
|
|
|
|
To install DynamicCursesInput, add the following line to your application's Gemfile:
|
|
|
|
```ruby
|
|
gem 'dynamic_curses_input'
|
|
```
|
|
|
|
Then execute:
|
|
|
|
```bash
|
|
$ bundle install
|
|
```
|
|
|
|
Or install it yourself as:
|
|
|
|
```bash
|
|
$ gem install dynamic_curses_input
|
|
```
|
|
|
|
## Usage
|
|
|
|
Here's a simple example of how to use DynamicCursesInput:
|
|
|
|
```ruby
|
|
require "curses"
|
|
require "dynamic_curses_input"
|
|
|
|
begin
|
|
Curses.init_screen
|
|
Curses.start_color
|
|
Curses.addstr("You should be able to use the left and right arrow keys to switch between characters in the line, and selectively edit them.\n")
|
|
Curses.addstr("Enter your name: ")
|
|
name = DCI.catch_input(true)
|
|
Curses.addstr("\nYou entered: #{name}")
|
|
Curses.getch
|
|
|
|
# Log the output
|
|
logger.info("Name entered: #{name}")
|
|
ensure
|
|
Curses.close_screen
|
|
end
|
|
```
|
|
|
|
In this example, `DCI.catch_input(true)` will capture user input until the Enter key is pressed, echoing the input to the screen.
|
|
|
|
## Documentation
|
|
|
|
Detailed documentation for each function is available in the [wiki](https://github.com/Pixelated-Studios/dynamic_curses_input/wiki).
|
|
|
|
## Dependencies
|
|
|
|
DynamicCursesInput depends on the [Curses](https://github.com/ruby/curses) gem.
|
|
|
|
## FAQs
|
|
|
|
- **Q: How do I handle special keys like arrow keys?**
|
|
- A: Special keys like arrow keys are automatically handled by DynamicCursesInput.
|
|
|
|
## Troubleshooting
|
|
|
|
If you encounter any issues while using DynamicCursesInput, please check the [issues](https://github.com/yourusername/dynamic_curses_input/issues) page. If your issue isn't listed, feel free to open a new issue.
|
|
|
|
## Contribution Guidelines
|
|
|
|
We welcome contributions from the community! Please read our [contribution guidelines](CONTRIBUTING.md) before submitting a pull request.
|
|
|
|
## License
|
|
|
|
DynamicCursesInput is available under the [MIT License](LICENSE.txt).
|
|
|
|
---
|
|
|
|
### Note from the Developer:
|
|
|
|
There is a function in this gem that is not finished yet, it's for making asking questions in a Curses TUI easier from within the gem. This method shouldn't be used yet.
|