Module: Vidibus::Sysinfo::Memory

Extended by:
Base
Defined in:
lib/vidibus/sysinfo/memory.rb

Overview

Returns used memory in megabytes.

Calls ‘free`

Defined Under Namespace

Classes: Result

Class Method Summary collapse

Methods included from Base

call, explain

Methods included from Helper

#round

Class Method Details

.commandObject



24
25
26
# File 'lib/vidibus/sysinfo/memory.rb', line 24

def command
  'free -m'
end

.parse(output) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/vidibus/sysinfo/memory.rb', line 28

def parse(output)
  new_format = !!output.match(/available/)
  if output.match(/^Mem:\s+([\d\s]+)$/)
    numbers = $1.split(/\s+/)
    total = numbers[0].to_i
    buffers = numbers[4].to_i
    cached = new_format ? buffers : numbers[5].to_i
    used = numbers[1].to_i
    unless new_format
      used -= buffers + cached
    end
    Result.new({
      total: total,
      used: used,
      free: total - used
    })
  end
end