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

50 lines
1.8 KiB
Markdown
Vendored

# mruby-symbol-ext
This gem extends mruby's `Symbol` class with additional useful methods.
## Methods
Here are the methods added to the `Symbol` class:
### `capitalize`
- **call-seq:** `sym.capitalize -> symbol`
- Returns a new symbol with the first character converted to uppercase and the remainder to lowercase. Equivalent to `sym.to_s.capitalize.intern`.
### `downcase`
- **call-seq:** `sym.downcase -> symbol`
- Returns a new symbol with all characters converted to lowercase. Equivalent to `sym.to_s.downcase.intern`.
### `upcase`
- **call-seq:** `sym.upcase -> symbol`
- Returns a new symbol with all characters converted to uppercase. Equivalent to `sym.to_s.upcase.intern`.
### `casecmp(other_symbol)`
- **call-seq:** `sym.casecmp(other) -> -1, 0, +1 or nil`
- Performs a case-insensitive comparison between two symbols. Returns -1, 0, or +1 if `other_symbol` is a symbol. Returns `nil` if `other_symbol` is not a symbol.
### `casecmp?(other_symbol)`
- **call-seq:** `sym.casecmp?(other) -> true, false, or nil`
- Returns `true` if the receiver and `other_symbol` are equal after case folding, `false` if they are not equal. Returns `nil` if `other_symbol` is not a symbol.
### `empty?`
- **call-seq:** `sym.empty? -> true or false`
- Returns `true` if the symbol's string representation is empty (i.e., `:""`), `false` otherwise.
### `length` / `size`
- **call-seq:**
- `sym.length -> integer`
- `sym.size -> integer`
- Returns the length of the symbol's string representation. `size` is an alias for `length`.
### `Symbol.all_symbols` (Conditional)
- **call-seq:** `Symbol.all_symbols => array`
- Returns an array of all symbols currently in mruby's symbol table.
- **Note:** This method is only available if mruby is compiled with the `MRB_USE_ALL_SYMBOLS` define.