Skip to content

Instantly share code, notes, and snippets.

@sms420
Created December 22, 2009 06:47
Show Gist options
  • Select an option

  • Save sms420/261558 to your computer and use it in GitHub Desktop.

Select an option

Save sms420/261558 to your computer and use it in GitHub Desktop.
computer class
#!/usr/local/bin/ruby1.9 -w
# class possesing eight methods to provide
# information about the physical system:
# (1) mem_size
# (2) cpu_nums
# (3) cpu_vendor
# (4) cpu_model
# (5) cpu_speed
# (6) os_name
# (7) mac_num
# (8) swap_size
class Computer
############ (1) TOTAL SIZE OF MEMORY ############
def mem_size
total = 0
result = `cat /proc/meminfo`
result.split("\n").each do |l|
key, value = l.split(':',2).map{|x| x.strip}
if key == 'MemTotal'
total = value.to_i/1024
end
end
puts "Memory: #{total} MBs"
end
############ (2) NUMBER OF CPUS ############
def cpu_nums
result = `cat /proc/cpuinfo`
cpus = result.split("\n\n")
puts "Total CPUs: " + cpus.size.to_s
end
############ (3) CPU VENDOR ############
def cpu_vendor
vendor = String.new
result = `cat /proc/cpuinfo`
cpus = result.split("\n\n")
cpus.each do |c|
c.split("\n").each do |l|
key, value = l.split(':', 2).map{|x| x.strip}
if key == 'vendor_id'
vendor = value
end
end
end
puts "CPU Vendor: #{vendor}"
end
############ (4) CPU MODEL ############
def cpu_model
model = String.new
result = `cat /proc/cpuinfo`
cpus = result.split("\n\n")
cpus.each do |c|
c.split("\n").each do |l|
key, value = l.split(':', 2).map{|x| x.strip}
if key == 'model name'
model = value
end
end
end
puts "CPU Model: #{model}"
end
############ (5) CPU SPEED ############
def cpu_speed
speed = String.new
result = `cat /proc/cpuinfo`
cpus = result.split("\n\n")
cpus.each do |c|
c.split("\n").each do |l|
key, value = l.split(':', 2).map{|x| x.strip}
if key == 'cpu MHz'
speed = value
end
end
end
puts "CPU Speed: #{speed} MHz"
end
############ (6) OS NAME ############
def os_name
puts 'OS Name: ' + `uname`
end
############ (7) MAC ADDRESS ############
def mac_num
mac_addr = String.new
result = `ifconfig`
sys_info = result.split("\n\n")
sys_info.each do |c|
c.split("\n").each do |l|
key, value = l.split(" ",2).map{|x| x.strip}
if key == 'eth0'
mac_addr = value[28..44]
end
end
end
puts "MAC Address: #{mac_addr}"
end
############ (8) SWAP SIZE ############
def swap_size
swap = String.new
result = `cat /proc/meminfo`
sys_info = result.split("\n\n")
sys_info.each do |c|
c.split("\n").each do |l|
key, value = l.split(':', 2).map{|x| x.strip}
if key == 'SwapTotal'
swap = value
end
end
end
puts "Swap Size: #{swap}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment