forked from nonsequitur/inf-ruby
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Sean Champ edited this page Dec 26, 2021
·
7 revisions
This project is an independent fork of the original inf-ruby
The iRuby project will endeavor to retain portability onto Ruby implementations supported in inf-ruby
.
In version 3.0, the main development branch of this fork after inf-ruby
provides full support for IRB, with other implementations presently untested.
iRuby version 3.0 has been locally tested on Linux, FreeBSD, and Cygwin Ruby platforms.
The iRuby project has retained most of the original, functional nature of the inf-ruby
API
iRuby library versions have continued from inf-ruby
at the point of fork, now at iRuby version 3
An abbreviated overview of features, in how this fork may diverge from inf-ruby
:
- Different ways to define a Ruby implementation. iRuby develops a specific data structure for values in
iruby-implementations
, with properties that provide information for implementation-specific forms within an iRuby process buffer. - Threading support (preliminary)
- Interaction with the underlying Ruby process (preliminary)
- Different support for interactive completion.
- As one point of divergence, iRuby uses values from
iruby-implementations
for determining a Ruby completion form to use for each implementation. Up to iRuby version 3.0, this has been tested only with IRB. - As a further point of divergence, iRuby allows selecting a syntax table from either
enh-ruby-mode
or the popularruby-mode
distributed with Emacs. This may affect the Emacs side of behaviors for input completion in an iRuby process buffer.
- As one point of divergence, iRuby uses values from
- Different global storage for Ruby process buffers (comint), adding a new
iruby-read-process
function for support of interactive commands using this internal data structure. The original buffer-local variableinf-ruby-buffer
has been retained asiruby-buffer
- Slightly different semantics for selecting the active Ruby process buffer. iRuby defines a function,
iruby-get-prevailing-buffer
such that provides support for optional project/console directory parsing - similar to inf-ruby - as well as implementing the original support for buffer-local and global selection of an active Ruby process buffer - Additional behaviors for interacting with the input history in the Ruby process buffer
- Customizable modeline labels - options for
iruby-minor-mode
and in Ruby process buffers,iruby-mode
, in thedefcustom
groupiruby-ui
- iRuby provides support for storage and restoral of Ruby process buffers, under
desktop-save
anddesktop-read
- iRuby distribution to ELPA is presently unmaintained
- Documentation needs update
- Needs testing on platforms other than IRB
- Needs distribution to ELPA
- Project support - API and user interface (Gem projects, other)
- Asynchronous I/O with the Ruby process - implementation of a rudimentary transaction tagging protocol
- Ruby initialization in Ruby process buffers - Implementing custom Ruby code (e.g extending IRB for runtime config) and referencing custom code under
iruby-implementations
- Storing the comint input ring for each defined implementation, in lieu of the full history of input to the underlying Ruby process. Presently, the underlying Ruby interaction process (e.g IRB) may store all input - including 'here-text' tags from iRuby - in its own history file. To configure the interactive process to not store all input in a history file will require more implementation-specific forms, and may entail the distribution of some custom Ruby code for iRuby.
- Debugger support (may be gem-specific)