From: davidm@... Date: 2014-07-18T23:01:51+00:00 Subject: [ruby-core:63841] [ruby-trunk - Feature #10065] Make `gem env` command output valid YAML Issue #10065 has been updated by David MacMahon. It doesn't *need* to be YAML, but does it need *not* to be YAML? It is sooooo close already why not make it YAML? Besides, much of the info in the `GEM CONFIGURATION` section (where the only non-YAML syntax exists) comes from YAML files already (i.e. `${HOME}/.gemrc` and the system-wide `gemrc` file), so why output that in a different format? How would the proposed change make it too clumsy to be useful? If anything, it makes it less clumsy to use. The current output of `gem environment` cannot be eval'd by Ruby, so what benefit does the rocket ship provide over the colon? Without the proposed patch: ```bash $ ruby -r pp -r yaml -e 'pp YAML.load `gem env`' /Users/davidm/local/lib/ruby/2.1.0/psych.rb:370:in `parse': (): did not find expected '-' indicator while parsing a block collection at line 16 column 6 (Psych::SyntaxError) from /Users/davidm/local/lib/ruby/2.1.0/psych.rb:370:in `parse_stream' from /Users/davidm/local/lib/ruby/2.1.0/psych.rb:318:in `parse' from /Users/davidm/local/lib/ruby/2.1.0/psych.rb:245:in `load' from -e:1:in `
' ``` Emulating the proposed patch at runtime: ```bash $ ruby -r pp -r yaml -e 'pp YAML.load `gem env`.gsub(" =>",":")' {"RubyGems Environment"=> [{"RUBYGEMS VERSION"=>"2.4.1"}, # etc... ``` ---------------------------------------- Feature #10065: Make `gem env` command output valid YAML https://bugs.ruby-lang.org/issues/10065#change-47874 * Author: David MacMahon * Status: Feedback * Priority: Normal * Assignee: Eric Hodel * Category: lib/rubygems * Target version: ---------------------------------------- The output of `gem environment` is close to being valid YAML, but the `GEM CONFIGURATION` section uses `key => value` instead of `key: value` so the output cannot be parsed by YAML. The attached patch changes just one line to make the output of `gem environment` be valid YAML. I could not find a specification for the output of the `gem environment` command so I am filing this as a feature request rather than as a bug. The attached patch is the minimum change necessary to create valid YAML. I think the structure of the resulting YAML output is not optimal. It is currently a one element Hash whose only value is an Array of one element Hashes. Is it preferable to address that in a separate feature request or as an expansion of this one? ---Files-------------------------------- 0001-Make-gem-env-command-output-valid-YAML.patch (1.12 KB) -- https://bugs.ruby-lang.org/