calog/vendor/mruby/mrbgems/mruby-bin-mirb/README.md
2026-07-04 20:25:00 -05:00

94 lines
1.8 KiB
Markdown
Vendored

# mruby-bin-mirb
mirb (mruby interactive) is an interactive Ruby shell for mruby.
## Usage
```
mirb [options]
```
### Options
- `-v` - print version and exit
- `-d` - set `$DEBUG` to true
- `-r library` - load the library before executing
- `--verbose` - verbose mode
## Tab Completion
mirb supports context-aware tab completion when built with a readline library.
### Supported Completions
- **Methods on objects**: Type an expression followed by `.` and press Tab
```
> "hello".up<Tab>
upcase upcase! upto
```
- **Local variables**: Variables defined in the session
```
> my_var = 123
> my<Tab>
my_var
```
- **Global variables**: Press Tab after `$`
```
> $std<Tab>
$stdout $stderr $stdin
```
- **Constants and classes**: Capital letter followed by Tab
```
> Str<Tab>
String Struct
```
- **Ruby keywords**: At the start of expressions
```
> cla<Tab>
class
```
### Readline Library Support
Tab completion works with:
- **GNU readline** (default on Linux)
- **libedit** (default on macOS/BSD)
- **linenoise** (lightweight alternative)
### Configuration
The readline library can be configured via the `MRUBY_MIRB_READLINE` environment variable:
```bash
# Auto-detect (default)
rake
# Force specific library
MRUBY_MIRB_READLINE=readline rake # GNU readline
MRUBY_MIRB_READLINE=libedit rake # libedit
MRUBY_MIRB_READLINE=linenoise rake # linenoise
# Disable readline (plain input mode)
MRUBY_MIRB_READLINE=none rake
```
### Notes
- Completion evaluates receiver expressions to determine available methods
- Only simple receivers (variable names, constants) are evaluated for safety
- Complex expressions like `obj.method().` are not completed to avoid side effects
- File path completion in `require`/`load` statements is planned for future versions
## License
MIT License - see the mruby LICENSE file.