Module Facter::Memory
In: lib/facter/util/memory.rb

memory.rb Support module for memory related facts

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation (version 2 of the License) This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston MA 02110-1301 USA

Methods

Public Class methods

[Source]

    # File lib/facter/util/memory.rb, line 19
19:     def self.meminfo_number(tag)
20:         memsize = ""
21:         Thread::exclusive do
22:             size, scale = [0, ""]
23:             File.readlines("/proc/meminfo").each do |l|
24:                 size, scale = [$1.to_f, $2] if l =~ /^#{tag}:\s+(\d+)\s+(\S+)/
25:                 # MemoryFree == memfree + cached + buffers
26:                 #  (assume scales are all the same as memfree)
27:                 if tag == "MemFree" &&
28:                     l =~ /^(?:Buffers|Cached):\s+(\d+)\s+(?:\S+)/
29:                     size += $1.to_f
30:                 end
31:             end
32:             memsize = scale_number(size, scale)
33:         end
34: 
35:         memsize
36:     end

[Source]

    # File lib/facter/util/memory.rb, line 38
38:     def self.scale_number(size, multiplier)
39:         suffixes = ['', 'kB', 'MB', 'GB', 'TB']
40: 
41:         s = suffixes.shift
42:         while s != multiplier
43:             s = suffixes.shift
44:         end
45: 
46:         while size > 1024.0
47:             size /= 1024.0
48:             s = suffixes.shift
49:         end
50: 
51:         return "%.2f %s" % [size, s]
52:     end

[Validate]