Refactor CLI::List.
				
					
				
			This commit is contained in:
		
							parent
							
								
									ccafa1b759
								
							
						
					
					
						commit
						24f38a2e8a
					
				@ -1,19 +1,24 @@
 | 
				
			|||||||
module Hbc
 | 
					module Hbc
 | 
				
			||||||
  class CLI
 | 
					  class CLI
 | 
				
			||||||
    class List < Base
 | 
					    class List < Base
 | 
				
			||||||
      def self.run(*arguments)
 | 
					      def self.run(*args)
 | 
				
			||||||
        @options = {}
 | 
					        new(*args).run
 | 
				
			||||||
        @options[:one] = true if arguments.delete("-1")
 | 
					      end
 | 
				
			||||||
        @options[:versions] = true if arguments.delete("--versions")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if arguments.delete("-l")
 | 
					      def initialize(*args)
 | 
				
			||||||
          @options[:one] = true
 | 
					        @cask_tokens = self.class.cask_tokens_from(args)
 | 
				
			||||||
          opoo "Option -l is obsolete! Implying option -1."
 | 
					        @one = true if args.delete("-1")
 | 
				
			||||||
        end
 | 
					        @versions = true if args.delete("--versions")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        retval = arguments.any? ? list(*arguments) : list_installed
 | 
					        return unless args.delete("-l")
 | 
				
			||||||
 | 
					        @one = true
 | 
				
			||||||
 | 
					        opoo "Option -l is obsolete! Implying option -1."
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      def run
 | 
				
			||||||
 | 
					        retval = @cask_tokens.any? ? list : list_installed
 | 
				
			||||||
        # retval is ternary: true/false/nil
 | 
					        # retval is ternary: true/false/nil
 | 
				
			||||||
        if retval.nil? && !arguments.any?
 | 
					        if retval.nil? && !@cask_tokens.any?
 | 
				
			||||||
          opoo "nothing to list" # special case: avoid exit code
 | 
					          opoo "nothing to list" # special case: avoid exit code
 | 
				
			||||||
        elsif retval.nil?
 | 
					        elsif retval.nil?
 | 
				
			||||||
          raise CaskError, "nothing to list"
 | 
					          raise CaskError, "nothing to list"
 | 
				
			||||||
@ -22,22 +27,22 @@ module Hbc
 | 
				
			|||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def self.list(*cask_tokens)
 | 
					      def list
 | 
				
			||||||
        count = 0
 | 
					        count = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cask_tokens.each do |cask_token|
 | 
					        @cask_tokens.each do |cask_token|
 | 
				
			||||||
          odebug "Listing files for Cask #{cask_token}"
 | 
					          odebug "Listing files for Cask #{cask_token}"
 | 
				
			||||||
          begin
 | 
					          begin
 | 
				
			||||||
            cask = CaskLoader.load(cask_token)
 | 
					            cask = CaskLoader.load(cask_token)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if cask.installed?
 | 
					            if cask.installed?
 | 
				
			||||||
              if @options[:one]
 | 
					              if @one
 | 
				
			||||||
                puts cask.token
 | 
					                puts cask.token
 | 
				
			||||||
              elsif @options[:versions]
 | 
					              elsif @versions
 | 
				
			||||||
                puts format_versioned(cask)
 | 
					                puts self.class.format_versioned(cask)
 | 
				
			||||||
              else
 | 
					              else
 | 
				
			||||||
                cask = CaskLoader.load_from_file(cask.installed_caskfile)
 | 
					                cask = CaskLoader.load_from_file(cask.installed_caskfile)
 | 
				
			||||||
                list_artifacts(cask)
 | 
					                self.class.list_artifacts(cask)
 | 
				
			||||||
              end
 | 
					              end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              count += 1
 | 
					              count += 1
 | 
				
			||||||
@ -49,7 +54,7 @@ module Hbc
 | 
				
			|||||||
          end
 | 
					          end
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        count.zero? ? nil : count == cask_tokens.length
 | 
					        count.zero? ? nil : count == @cask_tokens.length
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def self.list_artifacts(cask)
 | 
					      def self.list_artifacts(cask)
 | 
				
			||||||
@ -59,13 +64,13 @@ module Hbc
 | 
				
			|||||||
        end
 | 
					        end
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      def self.list_installed
 | 
					      def list_installed
 | 
				
			||||||
        installed_casks = Hbc.installed
 | 
					        installed_casks = Hbc.installed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if @options[:one]
 | 
					        if @one
 | 
				
			||||||
          puts installed_casks.map(&:to_s)
 | 
					          puts installed_casks.map(&:to_s)
 | 
				
			||||||
        elsif @options[:versions]
 | 
					        elsif @versions
 | 
				
			||||||
          puts installed_casks.map(&method(:format_versioned))
 | 
					          puts installed_casks.map(&self.class.method(:format_versioned))
 | 
				
			||||||
        elsif !installed_casks.empty?
 | 
					        elsif !installed_casks.empty?
 | 
				
			||||||
          puts Formatter.columns(installed_casks.map(&:to_s))
 | 
					          puts Formatter.columns(installed_casks.map(&:to_s))
 | 
				
			||||||
        end
 | 
					        end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user