implement MemInfo.mem_total on Mac OS X

This commit is contained in:
Kuba Brecka 2013-03-23 16:57:47 +01:00
parent 030ecfaa71
commit 0e27af8473
1 changed files with 13 additions and 7 deletions

View File

@ -1,14 +1,20 @@
class MemInfo class MemInfo
# Total memory in kb. Only works on systems with /proc/meminfo. # Total memory in kb. On Mac OS uses "sysctl", elsewhere expects the system has /proc/meminfo.
# Returns nil if it cannot be determined. # Returns nil if it cannot be determined.
def mem_total def mem_total
@mem_total ||= begin @mem_total ||=
if s = `grep MemTotal /proc/meminfo` begin
/(\d+)/.match(s)[0].try(:to_i) system = `uname`.strip
if system == "Darwin"
s = `sysctl -n hw.memsize`.strip
s.to_i / 1024
else else
nil s = `grep MemTotal /proc/meminfo`
/(\d+)/.match(s)[0].try(:to_i)
end end
rescue
nil
end end
end end