Created
December 22, 2009 06:47
-
-
Save sms420/261558 to your computer and use it in GitHub Desktop.
computer class
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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