@@ -13,6 +13,8 @@ interface RubyVersion {
13
13
version : string ;
14
14
}
15
15
16
+ const ACTIVATION_SEPARATOR = "ACTIVATION_SEPARATOR" ;
17
+
16
18
// A tool to change the current Ruby version
17
19
// Learn more: https://github.com/postmodern/chruby
18
20
export class Chruby extends VersionManager {
@@ -179,14 +181,16 @@ export class Chruby extends VersionManager {
179
181
"end" ,
180
182
`newer_gem_home = File.join(File.dirname(user_dir), "${ rubyVersion . version } ")` ,
181
183
"gems = (Dir.exist?(newer_gem_home) ? newer_gem_home : user_dir)" ,
182
- "data = { defaultGems: Gem.default_dir, gemHome: gems, yjit: !!defined?(RubyVM::YJIT), version: RUBY_VERSION }" ,
183
- "STDERR.print(JSON.dump(data))" ,
184
+ `STDERR.print([Gem.default_dir, gems, !!defined?(RubyVM::YJIT), RUBY_VERSION].join("${ ACTIVATION_SEPARATOR } "))` ,
184
185
] . join ( ";" ) ;
185
186
186
187
const result = await this . runScript (
187
- `${ rubyExecutableUri . fsPath } -W0 -rjson - e '${ script } '` ,
188
+ `${ rubyExecutableUri . fsPath } -W0 -e '${ script } '` ,
188
189
) ;
189
190
190
- return this . parseWithErrorHandling ( result . stderr ) ;
191
+ const [ defaultGems , gemHome , yjit , version ] =
192
+ result . stderr . split ( ACTIVATION_SEPARATOR ) ;
193
+
194
+ return { defaultGems, gemHome, yjit : yjit === "true" , version } ;
191
195
}
192
196
}
0 commit comments