Skip to content

feat(runtime): add Ruby provider#116

Merged
CalvinAllen merged 1 commit intomainfrom
feature/ruby-provider
Dec 12, 2025
Merged

feat(runtime): add Ruby provider#116
CalvinAllen merged 1 commit intomainfrom
feature/ruby-provider

Conversation

@CalvinAllen
Copy link
Contributor

Summary

  • Add Ruby runtime provider with full support for Windows, macOS, and Linux
  • Windows uses RubyInstaller silent mode installation (no 7-Zip required)
  • macOS/Linux uses ruby-builder prebuilt binaries
  • Includes migration detection for rbenv, rvm, chruby, and system installations

Features

  • Shims: ruby, gem, irb, bundle, rake, rdoc, ri
  • Reshim detection: gem install/uninstall, bundle install/update
  • Version sources:
    • Windows: RubyInstaller releases (GitHub API)
    • macOS/Linux: ruby-builder toolcache release (GitHub API)

Test plan

  • Unit tests pass (28 tests for Ruby provider)
  • dtvem list-all ruby works on Windows
  • CI passes on all platforms
  • Manual testing of dtvem install ruby <version> on Windows

Closes #37

Implement Ruby runtime provider for dtvem with support for:
- Windows: RubyInstaller silent mode installation
- macOS/Linux: ruby-builder prebuilt binaries

Features:
- Shims: ruby, gem, irb, bundle, rake, rdoc, ri
- Reshim detection for gem install/uninstall and bundle install/update
- Migration detection for rbenv, rvm, chruby, and system installations
- Platform-specific version listing (RubyInstaller for Windows, ruby-builder for Unix)

Closes #37
@CalvinAllen CalvinAllen merged commit b0bdafb into main Dec 12, 2025
10 checks passed
@CalvinAllen CalvinAllen deleted the feature/ruby-provider branch December 12, 2025 20:59
@CalvinAllen
Copy link
Contributor Author

CalvinAllen commented Dec 12, 2025

/release-note We now have the Ruby runtime provider with full support for Windows, macOS, and Linux!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

feat(runtime): add Ruby provider

1 participant