summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMartin Emde <martin.emde@gmail.com>2023-12-13 13:46:04 -0800
committergit <svn-admin@ruby-lang.org>2023-12-13 22:50:45 +0000
commitc1f4bfd41fa7e1fa23ef6803349ac009debdf61f (patch)
tree32608c55e25c89edbd31b7e78ec527798ae1ad51 /lib
parent5a0cbc934428b3babdce6f5d014c30afcb84e567 (diff)
[rubygems/rubygems] Revert "Merge pull request #7167 from nevinera/add-json-output-option-to-bundle-outdated"
This reverts commit https://github.com/rubygems/rubygems/commit/a4ac5116b8ea, reversing changes made to https://github.com/rubygems/rubygems/commit/8a6b180d0ae5. https://github.com/rubygems/rubygems/commit/a1efe4015d
Diffstat (limited to 'lib')
-rw-r--r--lib/bundler/cli.rb1
-rw-r--r--lib/bundler/cli/outdated.rb75
2 files changed, 18 insertions, 58 deletions
diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb
index bf6e0fbec9..d93feb7b55 100644
--- a/lib/bundler/cli.rb
+++ b/lib/bundler/cli.rb
@@ -379,7 +379,6 @@ module Bundler
method_option "filter-minor", type: :boolean, banner: "Only list minor newer versions"
method_option "filter-patch", type: :boolean, banner: "Only list patch newer versions"
method_option "parseable", aliases: "--porcelain", type: :boolean, banner: "Use minimal formatting for more parseable output"
- method_option "json", type: :boolean, banner: "Produce parseable json output"
method_option "only-explicit", type: :boolean, banner: "Only list gems specified in your Gemfile, not their dependencies"
def outdated(*gems)
require_relative "cli/outdated"
diff --git a/lib/bundler/cli/outdated.rb b/lib/bundler/cli/outdated.rb
index 68c1bfd405..ec42e631bb 100644
--- a/lib/bundler/cli/outdated.rb
+++ b/lib/bundler/cli/outdated.rb
@@ -53,13 +53,13 @@ module Bundler
options[:local] ? definition.resolve_with_cache! : definition.resolve_remotely!
end
- if options[:parseable] || options[:json]
+ if options[:parseable]
Bundler.ui.silence(&definition_resolution)
else
definition_resolution.call
end
- Bundler.ui.info "" unless options[:json]
+ Bundler.ui.info ""
# Loop through the current specs
gemfile_specs, dependency_specs = current_specs.partition do |spec|
@@ -98,24 +98,27 @@ module Bundler
end
if outdated_gems.empty?
- if options[:json]
- print_gems_json([])
- elsif !options[:parseable]
+ unless options[:parseable]
Bundler.ui.info(nothing_outdated_message)
end
else
- relevant_outdated_gems = if options_include_groups
- by_group(outdated_gems, filter: options[:group])
- else
- outdated_gems
- end
-
- if options[:json]
- print_gems_json(relevant_outdated_gems)
+ if options_include_groups
+ relevant_outdated_gems = outdated_gems.group_by {|g| g[:groups] }.sort.flat_map do |groups, gems|
+ contains_group = groups.split(", ").include?(options[:group])
+ next unless options[:groups] || contains_group
+
+ gems
+ end.compact
+
+ if options[:parseable]
+ print_gems(relevant_outdated_gems)
+ else
+ print_gems_table(relevant_outdated_gems)
+ end
elsif options[:parseable]
- print_gems(relevant_outdated_gems)
+ print_gems(outdated_gems)
else
- print_gems_table(relevant_outdated_gems)
+ print_gems_table(outdated_gems)
end
exit 1
@@ -159,13 +162,6 @@ module Bundler
active_specs.last
end
- def by_group(gems, filter: nil)
- gems.group_by {|g| g[:groups] }.sort.flat_map do |groups_string, grouped_gems|
- next if filter && !groups_string.split(", ").include?(filter)
- grouped_gems
- end.compact
- end
-
def print_gems(gems_list)
gems_list.each do |gem|
print_gem(
@@ -177,21 +173,6 @@ module Bundler
end
end
- def print_gems_json(gems_list)
- require "json"
- data = gems_list.map do |gem|
- gem_data_for(
- gem[:current_spec],
- gem[:active_spec],
- gem[:dependency],
- gem[:groups]
- )
- end
-
- data = { outdated_count: gems_list.count, outdated_gems: data }
- Bundler.ui.info data.to_json
- end
-
def print_gems_table(gems_list)
data = gems_list.map do |gem|
gem_column_for(
@@ -231,26 +212,6 @@ module Bundler
Bundler.ui.info output_message.rstrip
end
- def gem_data_for(current_spec, active_spec, dependency, groups)
- {
- current_spec: spec_data_for(current_spec),
- active_spec: spec_data_for(active_spec),
- dependency: dependency&.to_s,
- groups: (groups || "").split(", "),
- }
- end
-
- def spec_data_for(spec)
- {
- name: spec.name,
- version: spec.version.to_s,
- platform: spec.platform,
- source: spec.source.to_s,
- required_ruby_version: spec.required_ruby_version.to_s,
- required_rubygems_version: spec.required_rubygems_version.to_s,
- }
- end
-
def gem_column_for(current_spec, active_spec, dependency, groups)
current_version = "#{current_spec.version}#{current_spec.git_version}"
spec_version = "#{active_spec.version}#{active_spec.git_version}"