Class: OsCtl::Cli::Ps::Columns
- Inherits:
- 
      Object
      
        - Object
- OsCtl::Cli::Ps::Columns
 
- Includes:
- Lib::Utils::Humanize
- Defined in:
- lib/osctl/cli/ps/columns.rb
Constant Summary collapse
- COLS =
- %i[ pool ctid pid ctpid ruid rgid euid egid ctruid ctrgid cteuid ctegid vmsize rss state start time command name ].freeze 
- DEFAULT_ONE_CT =
- %i[ pid ctpid cteuid vmsize rss state start time command ].freeze 
- DEFAULT_ONE_POOL =
- %i[ctid] + DEFAULT_ONE_CT 
- DEFAULT_MULTIPLE_POOLS =
- %i[pool] + DEFAULT_ONE_POOL 
- ALIGN_RIGHT =
- %i[ pid ruid rgid euid egid ctruid ctrgid cteuid ctegid vmsize rss time ].freeze 
Instance Attribute Summary collapse
- 
  
    
      #os_proc  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  protected
  
  
  
  
    Returns the value of attribute os_proc. 
Class Method Summary collapse
Instance Method Summary collapse
- #command ⇒ Object
- #ctegid ⇒ Object
- #cteuid ⇒ Object
- #ctid ⇒ Object
- #ctpid ⇒ Object
- #ctrgid ⇒ Object
- #ctruid ⇒ Object
- #egid ⇒ Object
- #euid ⇒ Object
- #format_time(v) ⇒ Object protected
- 
  
    
      #initialize(os_proc, precise)  ⇒ Columns 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Columns. 
- #mapped_id_or_fallback(id) ⇒ Object protected
- #name ⇒ Object
- #pid ⇒ Object
- #pool ⇒ Object
- #precise? ⇒ Boolean protected
- #present_data(v) ⇒ Object protected
- #present_duration(v) ⇒ Object protected
- #present_time(v) ⇒ Object protected
- #rgid ⇒ Object
- #rss ⇒ Object
- #ruid ⇒ Object
- #start ⇒ Object
- #state ⇒ Object
- #time ⇒ Object
- #vmsize ⇒ Object
Constructor Details
#initialize(os_proc, precise) ⇒ Columns
Returns a new instance of Columns.
| 90 91 92 93 | # File 'lib/osctl/cli/ps/columns.rb', line 90 def initialize(os_proc, precise) @os_proc = os_proc @precise = precise end | 
Instance Attribute Details
#os_proc ⇒ Object (readonly, protected)
Returns the value of attribute os_proc.
| 181 182 183 | # File 'lib/osctl/cli/ps/columns.rb', line 181 def os_proc @os_proc end | 
Class Method Details
.generate(process_list, cols, precise) ⇒ Array<Hash>
| 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | # File 'lib/osctl/cli/ps/columns.rb', line 62 def self.generate(process_list, cols, precise) spec = cols.map do |c| { name: c, label: c.to_s.upcase, align: ALIGN_RIGHT.include?(c) ? :right : :left } end data = [] process_list.each do |os_proc| row = new(os_proc, precise) begin data << cols.to_h { |c| [c, row.send(c)] } rescue OsCtl::Lib::Exceptions::OsProcessNotFound next end end [spec, data] end | 
Instance Method Details
#command ⇒ Object
| 165 166 167 168 169 170 171 172 173 | # File 'lib/osctl/cli/ps/columns.rb', line 165 def command cmdline = os_proc.cmdline if cmdline.strip.empty? "[#{os_proc.name}]" else cmdline end end | 
#ctegid ⇒ Object
| 141 142 143 | # File 'lib/osctl/cli/ps/columns.rb', line 141 def ctegid mapped_id_or_fallback(:egid) end | 
#cteuid ⇒ Object
| 137 138 139 | # File 'lib/osctl/cli/ps/columns.rb', line 137 def cteuid mapped_id_or_fallback(:euid) end | 
#ctid ⇒ Object
| 100 101 102 103 | # File 'lib/osctl/cli/ps/columns.rb', line 100 def ctid pool, id = os_proc.ct_id pool.nil? ? '[host]' : id end | 
#ctpid ⇒ Object
| 109 110 111 | # File 'lib/osctl/cli/ps/columns.rb', line 109 def ctpid os_proc.ct_pid end | 
#ctrgid ⇒ Object
| 133 134 135 | # File 'lib/osctl/cli/ps/columns.rb', line 133 def ctrgid mapped_id_or_fallback(:rgid) end | 
#ctruid ⇒ Object
| 129 130 131 | # File 'lib/osctl/cli/ps/columns.rb', line 129 def ctruid mapped_id_or_fallback(:ruid) end | 
#egid ⇒ Object
| 125 126 127 | # File 'lib/osctl/cli/ps/columns.rb', line 125 def egid os_proc.egid end | 
#euid ⇒ Object
| 121 122 123 | # File 'lib/osctl/cli/ps/columns.rb', line 121 def euid os_proc.euid end | 
#format_time(v) ⇒ Object (protected)
| 195 196 197 198 199 200 201 202 203 | # File 'lib/osctl/cli/ps/columns.rb', line 195 def format_time(v) now = Time.now if now - v > 24 * 60 * 60 v.strftime('%b%d') else v.strftime('%H:%M') end end | 
#mapped_id_or_fallback(id) ⇒ Object (protected)
| 205 206 207 208 209 | # File 'lib/osctl/cli/ps/columns.rb', line 205 def mapped_id_or_fallback(id) os_proc.send(:"ct_#{id}") rescue OsCtl::Lib::Exceptions::IdMappingError os_proc.send(id) * -1 end | 
#name ⇒ Object
| 175 176 177 | # File 'lib/osctl/cli/ps/columns.rb', line 175 def name os_proc.name end | 
#pid ⇒ Object
| 105 106 107 | # File 'lib/osctl/cli/ps/columns.rb', line 105 def pid os_proc.pid end | 
#pool ⇒ Object
| 95 96 97 98 | # File 'lib/osctl/cli/ps/columns.rb', line 95 def pool pool, = os_proc.ct_id pool.nil? ? '-' : pool end | 
#precise? ⇒ Boolean (protected)
| 211 212 213 | # File 'lib/osctl/cli/ps/columns.rb', line 211 def precise? @precise end | 
#present_data(v) ⇒ Object (protected)
| 183 184 185 | # File 'lib/osctl/cli/ps/columns.rb', line 183 def present_data(v) OsCtl::Lib::Cli::Presentable.new(v, formatted: precise? ? nil : humanize_data(v)) end | 
#present_duration(v) ⇒ Object (protected)
| 191 192 193 | # File 'lib/osctl/cli/ps/columns.rb', line 191 def present_duration(v) OsCtl::Lib::Cli::Presentable.new(v, formatted: precise? ? nil : format_short_duration(v)) end | 
#present_time(v) ⇒ Object (protected)
| 187 188 189 | # File 'lib/osctl/cli/ps/columns.rb', line 187 def present_time(v) OsCtl::Lib::Cli::Presentable.new(v, formatted: precise? ? nil : format_time(v)) end | 
#rgid ⇒ Object
| 117 118 119 | # File 'lib/osctl/cli/ps/columns.rb', line 117 def rgid os_proc.rgid end | 
#rss ⇒ Object
| 149 150 151 | # File 'lib/osctl/cli/ps/columns.rb', line 149 def rss present_data(os_proc.rss) end | 
#ruid ⇒ Object
| 113 114 115 | # File 'lib/osctl/cli/ps/columns.rb', line 113 def ruid os_proc.ruid end | 
#start ⇒ Object
| 157 158 159 | # File 'lib/osctl/cli/ps/columns.rb', line 157 def start present_time(os_proc.start_time) end | 
#state ⇒ Object
| 153 154 155 | # File 'lib/osctl/cli/ps/columns.rb', line 153 def state os_proc.state end | 
#time ⇒ Object
| 161 162 163 | # File 'lib/osctl/cli/ps/columns.rb', line 161 def time present_duration(os_proc.user_time + os_proc.sys_time) end | 
#vmsize ⇒ Object
| 145 146 147 | # File 'lib/osctl/cli/ps/columns.rb', line 145 def vmsize present_data(os_proc.vmsize) end |