From 7d8aad46561b5b2b34e9febc01e998a5cbfb6258 Mon Sep 17 00:00:00 2001 From: William Ma Date: Mon, 10 Aug 2020 16:16:24 -0400 Subject: [PATCH] list: Replace Cask::Cmd with class method --- Library/Homebrew/cask/cmd/list.rb | 39 +++++++++++++++++++------------ Library/Homebrew/cmd/list.rb | 11 +++++---- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Library/Homebrew/cask/cmd/list.rb b/Library/Homebrew/cask/cmd/list.rb index 391e175633..9cb1e11ece 100644 --- a/Library/Homebrew/cask/cmd/list.rb +++ b/Library/Homebrew/cask/cmd/list.rb @@ -31,30 +31,39 @@ module Cask end def run - output = args.any? ? provided_list : Caskroom.casks + self.class.list_casks( + *casks, + json: json?, + one: one?, + full_name: full_name?, + versions: versions?, + ) + end - if json? + def self.list_casks(*casks, json: false, one: false, full_name: false, versions: false) + output = if casks.any? + casks.each do |cask| + raise CaskNotInstalledError, cask unless cask.installed? + end + else + Caskroom.casks + end + + if json puts JSON.generate(output.map(&:to_h)) - elsif one? + elsif one puts output.map(&:to_s) - elsif full_name? + elsif full_name puts output.map(&:full_name).sort(&tap_and_name_comparison) - elsif versions? - puts output.map(&self.class.method(:format_versioned)) - elsif !output.empty? && args.any? - puts output.map(&self.class.method(:list_artifacts)) + elsif versions + puts output.map(&method(:format_versioned)) + elsif !output.empty? && casks.any? + puts output.map(&method(:list_artifacts)) elsif !output.empty? puts Formatter.columns(output.map(&:to_s)) end end - def provided_list - casks.each do |cask| - raise CaskNotInstalledError, cask unless cask.installed? - end - casks - end - def self.list_artifacts(cask) cask.artifacts.group_by(&:class).each do |klass, artifacts| next unless klass.respond_to?(:english_description) diff --git a/Library/Homebrew/cmd/list.rb b/Library/Homebrew/cmd/list.rb index cf09a0bbea..ede8a2c600 100644 --- a/Library/Homebrew/cmd/list.rb +++ b/Library/Homebrew/cmd/list.rb @@ -168,11 +168,12 @@ module Homebrew end def list_casks(args:) - cask_list = Cask::Cmd::List.new args.named - cask_list.one = args.public_send(:'1?') - cask_list.versions = args.versions? - cask_list.full_name = args.full_name? - cask_list.run + Cask::Cmd::List.list_casks( + *args.loaded_casks, + one: args.public_send(:'1?'), + full_name: args.full_name?, + versions: args.versions?, + ) end end