Sha256: 2b4903567c4f1bb55ece8a8859ae6e3ba7868341db18de6b09244488b53f04cc

Contents?: true

Size: 1.22 KB

Versions: 5

Compression:

Stored size: 1.22 KB

Contents

module Invoker
  class ProcessPrinter
    MAX_COLUMN_WIDTH = 40
    attr_accessor :list_response

    def initialize(list_response)
      self.list_response = list_response
    end

    def print_table
      hash_with_colors = []
      list_response.processes.each do |process|
        if process.pid
          hash_with_colors << colorize_hash(process, "green")
        else
          hash_with_colors << colorize_hash(process, "light_black")
        end
      end
      Formatador.display_compact_table(hash_with_colors)
    end

    private

    def colorize_hash(process, color)
      hash_with_colors = {}

      hash_with_colors['dir'] = colored_string(process.dir, color)
      hash_with_colors['pid'] = colored_string(process.pid || 'Not Running', color)
      hash_with_colors['port'] = colored_string(process.port, color)
      hash_with_colors['shell_command'] = colored_string(process.shell_command, color)
      hash_with_colors['process_name'] = colored_string(process.process_name, color)
      hash_with_colors
    end

    def colored_string(string, color)
      string = string.to_s
      if string.length > MAX_COLUMN_WIDTH
        string = "#{string[0..MAX_COLUMN_WIDTH]}.."
      end
      "[#{color}]#{string}[/]"
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
invoker-1.5.3 lib/invoker/process_printer.rb
meepo-1.5.2 lib/invoker/process_printer.rb
invoker-1.5.1 lib/invoker/process_printer.rb
invoker-1.4.1 lib/invoker/process_printer.rb
invoker-1.4.0 lib/invoker/process_printer.rb