Module: SystemInformation::Linux::Memory

Defined in:
lib/systeminformation/linux/memory.rb

Class Method Summary collapse

Class Method Details

.usageObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/systeminformation/linux/memory.rb', line 4

def self.usage
  items = {
    :free => 'MemFree',
    :cached => 'Cached',
    :buffers => 'Buffers',
    :total => 'MemTotal',
    :swaptotal => 'SwapTotal',
    :swapfree => 'SwapFree'
  }

  File.open('/proc/meminfo','r') do |f|
    f.readlines.each do |l|
      items.each_pair do |i, k|
        if matches = Regexp.new("#{k}: +([0-9]+)").match(l)
          items[i] = matches[1].to_i
        end
      end
    end
    items[:used] = items[:total] - items[:free] - items[:cached] - items[:buffers]
    items[:swapused] = items[:swaptotal] - items[:swapfree]
  end
  return items
end