@masukomi/pi-rbenv
v1.0.0
Published
Pi extension to automatically manage Ruby versions, and gem installed executables via rbenv
Downloads
47
Maintainers
Readme
@masukomi/pi-rbenv
A pi extension package that automatically manages and sets your Ruby version using rbenv.
It intercepts all subprocess commands, interactive user bash executions (!/!!), and core pi tool calls to ensure that they are executed under the correct Ruby version with the appropriate environment variables and PATH adjustments.
Features
- Dynamic Ruby Version Resolution: Automatically reads and respects
.ruby-versionfiles in the project root. - Graceful Fallbacks: Falls back to rbenv's global Ruby version if a project's requested version is not installed or if no
.ruby-versionis found. - Subprocess Integration: Pre-pends rbenv shims to the environment
PATHacross all subprocess commands. - Tool Interception: Automatically injects the correct
RBENV_VERSIONandPATHinto the built-inbashtool,ctx_shell, anduser_bash(!/!!) sessions. Note:ctx_shellis part of pi-lean-ctx - Startup Notification: Shows a neat notification when the session starts telling you exactly which Ruby version is active and if a warning/fallback is in effect.
Installation
Local Installation (for development or private use)
Run the following command inside your project directory, or point to the absolute path of this package:
pi install /path/to/pi-rbenvGit Installation
pi install git:github.com/masukomi/pi-rbenvnpm Installation
pi install npm:@masukomi/pi-rbenvHow It Works
- On Session Start: Checks if there is a
.ruby-versionfile in the project directory. If present, it verifies whether the requested version is installed underrbenv. - Environment Tuning: If the requested version is present, it sets
RBENV_VERSIONto that version. If not, it falls back to the default/globalrbenvversion and displays a warning notification in the TUI/CLI. - Subprocess/Tool Overriding:
- Overrides the built-in
bashtool to ensure it runs with the modified environment. - Intercepts the
shell/ctx_shelltools to export the properPATHandRBENV_VERSIONvariables before command execution. - Wraps the interactive user CLI command runner (
!/!!) to preserve active rbenv settings.
- Overrides the built-in
License
MIT
